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

github.com/jgraph/drawio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Benson <david@draw.io>2021-12-22 00:09:21 +0300
committerDavid Benson <david@draw.io>2021-12-22 00:09:21 +0300
commitb52c5b475e4491f8679d9872c4239996e0fd52d9 (patch)
tree6d93caf6ad04d830f8650533ef74b5be4a4596ba
parent14fd9bd654c23c8be6dee49f26bf1e943c606c1d (diff)
16.0.3 releasev16.0.3
-rw-r--r--ChangeLog9
-rw-r--r--VERSION2
-rw-r--r--src/main/webapp/js/app.min.js1952
-rw-r--r--src/main/webapp/js/diagramly/App.js2
-rw-r--r--src/main/webapp/js/diagramly/Minimal.js10
-rw-r--r--src/main/webapp/js/viewer-static.min.js1079
-rw-r--r--src/main/webapp/js/viewer.min.js1079
-rw-r--r--src/main/webapp/mxgraph/mxClient.js54
-rw-r--r--src/main/webapp/service-worker.js2
-rw-r--r--src/main/webapp/service-worker.js.map2
10 files changed, 2109 insertions, 2082 deletions
diff --git a/ChangeLog b/ChangeLog
index b8b6a6e5..3f38dc3d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+21-DEC-2021: 16.0.3
+
+- Adds Share and Comments in sketch File menu
+- Fixes no stroke in Roughjs, adds swimlaneHead/Body
+- Uses persisted default grid color
+- Fixes rendering and tooltips for special colors
+- Fixes initial placement of shapes window
+- Uses Pusher 7.0.3 to fix NPE
+
21-DEC-2021: 16.0.2
- Re-build
diff --git a/VERSION b/VERSION
index 7dc3d91f..6a3f35fe 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-16.0.2 \ No newline at end of file
+16.0.3 \ No newline at end of file
diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js
index 1be53f7f..7355215c 100644
--- a/src/main/webapp/js/app.min.js
+++ b/src/main/webapp/js/app.min.js
@@ -236,7 +236,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:"16.0.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/"),
+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:"16.0.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==document.createElementNS("http://www.w3.org/2000/svg","foreignObject").toString()||0<=navigator.userAgent.indexOf("Opera/"),
@@ -339,16 +339,17 @@ STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT
STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",
STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",
STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",
-STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",
-STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",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",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};
+STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_SWIMLANE_HEAD:"swimlaneHead",STYLE_SWIMLANE_BODY:"swimlaneBody",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",
+STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",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",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};
@@ -672,10 +673,9 @@ l/2-k,d.y-l-k/2);a.close();a.moveTo(d.x-k,d.y-l);a.lineTo(d.x-2*k-.5*l,d.y+.5*k-
mxActor.prototype.redrawPath=function(a,b,c,d,e){b=d/3;a.moveTo(0,e);a.curveTo(0,3*e/5,0,2*e/5,d/2,2*e/5);a.curveTo(d/2-b,2*e/5,d/2-b,0,d/2,0);a.curveTo(d/2+b,0,d/2+b,2*e/5,d/2,2*e/5);a.curveTo(d,2*e/5,d,3*e/5,d,e);a.close()};function mxCloud(a,b,c,d){mxActor.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxCloud,mxActor);
mxCloud.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(.25*d,.25*e);a.curveTo(.05*d,.25*e,0,.5*e,.16*d,.55*e);a.curveTo(0,.66*e,.18*d,.9*e,.31*d,.8*e);a.curveTo(.4*d,e,.7*d,e,.8*d,.8*e);a.curveTo(d,.8*e,d,.6*e,.875*d,.5*e);a.curveTo(d,.3*e,.8*d,.1*e,.625*d,.2*e);a.curveTo(.5*d,.05*e,.3*d,.05*e,.25*d,.25*e);a.close()};function mxRectangleShape(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxRectangleShape,mxShape);
mxRectangleShape.prototype.isHtmlAllowed=function(){var a=!0;null!=this.style&&(a="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));return!this.isRounded&&!this.glass&&0==this.rotation&&(a||null!=this.fill&&this.fill!=mxConstants.NONE)};
-mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(this.isRounded){var f;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f));a.roundrect(b,c,d,e,f,f)}else a.rect(b,c,d,e);a.fillAndStroke()};
-mxRectangleShape.prototype.isRoundable=function(a,b,c,d,e){return!0};mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){this.glass&&!this.outline&&null!=this.fill&&this.fill!=mxConstants.NONE&&this.paintGlassEffect(a,b,c,d,e,this.getArcSize(d+this.strokewidth,e+this.strokewidth))};function mxEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxEllipse,mxShape);
-mxEllipse.prototype.paintVertexShape=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};function mxDoubleEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxDoubleEllipse,mxShape);mxDoubleEllipse.prototype.paintBackground=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};
-mxDoubleEllipse.prototype.paintForeground=function(a,b,c,d,e){if(!this.outline){var f=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(d/5,e/5)));d-=2*f;e-=2*f;0<d&&0<e&&a.ellipse(b+f,c+f,d,e);a.stroke()}};
+mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(this.isRounded){var f;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f));a.roundrect(b,c,d,e,f,f)}else a.rect(b,c,d,e);a.fillAndStroke()};mxRectangleShape.prototype.isRoundable=function(){return!0};
+mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){this.glass&&!this.outline&&null!=this.fill&&this.fill!=mxConstants.NONE&&this.paintGlassEffect(a,b,c,d,e,this.getArcSize(d+this.strokewidth,e+this.strokewidth))};function mxEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxEllipse,mxShape);mxEllipse.prototype.paintVertexShape=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};
+function mxDoubleEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxDoubleEllipse,mxShape);mxDoubleEllipse.prototype.paintBackground=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};mxDoubleEllipse.prototype.paintForeground=function(a,b,c,d,e){if(!this.outline){var f=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(d/5,e/5)));d-=2*f;e-=2*f;0<d&&0<e&&a.ellipse(b+f,c+f,d,e);a.stroke()}};
mxDoubleEllipse.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(a.width/5/this.scale,a.height/5/this.scale)))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)};function mxRhombus(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxRhombus,mxShape);mxRhombus.prototype.isRoundable=function(){return!0};
mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){var f=d/2,g=e/2,k=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+g),new mxPoint(b+f,c+e),new mxPoint(b,c+g)],this.isRounded,k,!0);a.fillAndStroke()};function mxPolyline(a,b,c){mxShape.call(this);this.points=a;this.stroke=b;this.strokewidth=null!=c?c:1}mxUtils.extend(mxPolyline,mxShape);mxPolyline.prototype.getRotation=function(){return 0};
mxPolyline.prototype.getShapeRotation=function(){return 0};mxPolyline.prototype.isPaintBoundsInverted=function(){return!1};mxPolyline.prototype.paintEdgeShape=function(a,b){var c=a.pointerEventsValue;a.pointerEventsValue="stroke";null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(a,b,this.isRounded):this.paintCurvedLine(a,b);a.pointerEventsValue=c};
@@ -742,7 +742,7 @@ function mxTriangle(){mxActor.call(this)}mxUtils.extend(mxTriangle,mxActor);mxTr
mxHexagon.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(.25*d,0),new mxPoint(.75*d,0),new mxPoint(d,.5*e),new mxPoint(.75*d,e),new mxPoint(.25*d,e),new mxPoint(0,.5*e)],this.isRounded,b,!0)};function mxLine(a,b,c,d){mxShape.call(this);this.bounds=a;this.stroke=b;this.strokewidth=null!=c?c:1;this.vertical=null!=d?d:this.vertical}mxUtils.extend(mxLine,mxShape);mxLine.prototype.vertical=!1;
mxLine.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();if(this.vertical){var f=b+d/2;a.moveTo(f,c);a.lineTo(f,c+e)}else f=c+e/2,a.moveTo(b,f),a.lineTo(b+d,f);a.stroke()};function mxImageShape(a,b,c,d,e){mxShape.call(this);this.bounds=a;this.image=b;this.fill=c;this.stroke=d;this.strokewidth=null!=e?e:1;this.shadow=!1}mxUtils.extend(mxImageShape,mxRectangleShape);mxImageShape.prototype.preserveImageAspect=!0;mxImageShape.prototype.getSvgScreenOffset=function(){return 0};
mxImageShape.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);this.gradient=this.stroke=this.fill=null;null!=this.style&&(this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.imageBackground=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),this.imageBorder=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||
-1==mxUtils.getValue(this.style,"imageFlipV",0))};mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect};mxImageShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxImageShape.prototype.isRoundable=function(a,b,c,d,e){return!1};mxImageShape.prototype.getImageDataUri=function(){return this.image};mxImageShape.prototype.configurePointerEvents=function(a){};
+1==mxUtils.getValue(this.style,"imageFlipV",0))};mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect};mxImageShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxImageShape.prototype.isRoundable=function(){return!1};mxImageShape.prototype.getImageDataUri=function(){return this.image};mxImageShape.prototype.configurePointerEvents=function(a){};
mxImageShape.prototype.paintVertexShape=function(a,b,c,d,e){null!=this.image?(null!=this.imageBackground&&(a.setFillColor(this.imageBackground),a.setStrokeColor(this.imageBorder),a.rect(b,c,d,e),a.fillAndStroke()),a.image(b,c,d,e,this.getImageDataUri(),this.preserveImageAspect,!1,!1),null!=this.imageBorder&&(a.setShadow(!1),a.setStrokeColor(this.imageBorder),a.rect(b,c,d,e),a.stroke())):mxRectangleShape.prototype.paintBackground.apply(this,arguments)};
mxImageShape.prototype.redrawHtmlShape=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px";this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px";this.node.innerHTML="";if(null!=this.image){var a=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,""),b=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,"");this.node.style.backgroundColor=
a;this.node.style.borderColor=b;a=document.createElement("img");a.setAttribute("border","0");a.style.position="absolute";a.src=this.image;b=100>this.opacity?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=b;this.flipH&&this.flipV?b+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?b+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(b+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)");a.style.filter!=b&&(a.style.filter=b);"image"==
@@ -762,18 +762,20 @@ mxConnector.prototype.updateBoundingBox=function(){this.useSvgBoundingBox=null!=
mxConnector.prototype.createMarker=function(a,b,c){var d=null,e=b.length,f=mxUtils.getValue(this.style,c?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW),g=c?b[1]:b[e-2];b=c?b[0]:b[e-1];if(null!=f&&null!=g&&null!=b)var d=b.x-g.x,e=b.y-g.y,k=Math.sqrt(d*d+e*e),g=d/k,d=e/k,e=mxUtils.getNumber(this.style,c?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),d=mxMarker.createMarker(a,this,f,b,g,d,e,c,this.strokewidth,0!=this.style[c?mxConstants.STYLE_STARTFILL:
mxConstants.STYLE_ENDFILL]);return d};
mxConnector.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var b=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1);mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b=Math.max(b,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+
-1);a.grow(b*this.scale)};function mxSwimlane(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxSwimlane,mxShape);mxSwimlane.prototype.imageSize=16;mxSwimlane.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.laneFill=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE))};mxSwimlane.prototype.isRoundable=function(a,b,c,d,e){return!0};
+1);a.grow(b*this.scale)};function mxSwimlane(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxSwimlane,mxShape);mxSwimlane.prototype.imageSize=16;mxSwimlane.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.laneFill=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE))};mxSwimlane.prototype.isRoundable=function(){return!0};
mxSwimlane.prototype.getTitleSize=function(){return Math.max(0,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE))};
-mxSwimlane.prototype.getLabelBounds=function(a){var b=this.getTitleSize();a=new mxRectangle(a.x,a.y,a.width,a.height);var c=this.isHorizontal(),d=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),e=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),f=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH,c=c==!f,d=!c&&d!=(this.direction==mxConstants.DIRECTION_SOUTH||this.direction==mxConstants.DIRECTION_WEST),e=c&&e!=(this.direction==mxConstants.DIRECTION_SOUTH||
-this.direction==mxConstants.DIRECTION_WEST);if(f){b=Math.min(a.width,b*this.scale);if(d||e)a.x+=a.width-b;a.width=b}else{b=Math.min(a.height,b*this.scale);if(d||e)a.y+=a.height-b;a.height=b}return a};mxSwimlane.prototype.getGradientBounds=function(a,b,c,d,e){a=this.getTitleSize();if(this.isHorizontal())return a=Math.min(a,e),new mxRectangle(b,c,d,a);a=Math.min(a,d);return new mxRectangle(b,c,a,e)};
+mxSwimlane.prototype.getLabelBounds=function(a){var b=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),c=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0);a=new mxRectangle(a.x,a.y,a.width,a.height);var d=this.isHorizontal(),e=this.getTitleSize(),f=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH,d=d==!f,b=!d&&b!=(this.direction==mxConstants.DIRECTION_SOUTH||this.direction==mxConstants.DIRECTION_WEST),c=d&&c!=(this.direction==mxConstants.DIRECTION_SOUTH||
+this.direction==mxConstants.DIRECTION_WEST);if(f){e=Math.min(a.width,e*this.scale);if(b||c)a.x+=a.width-e;a.width=e}else{e=Math.min(a.height,e*this.scale);if(b||c)a.y+=a.height-e;a.height=e}return a};mxSwimlane.prototype.getGradientBounds=function(a,b,c,d,e){a=this.getTitleSize();return this.isHorizontal()?new mxRectangle(b,c,d,Math.min(a,e)):new mxRectangle(b,c,Math.min(a,d),e)};
mxSwimlane.prototype.getSwimlaneArcSize=function(a,b,c){if("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0))return Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2));a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return c*a*3};mxSwimlane.prototype.isHorizontal=function(){return 1==mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)};
-mxSwimlane.prototype.paintVertexShape=function(a,b,c,d,e){var f=this.getTitleSize(),g=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),k=0,f=this.isHorizontal()?Math.min(f,e):Math.min(f,d);a.translate(b,c);this.isRounded?(k=this.getSwimlaneArcSize(d,e,f),k=Math.min((this.isHorizontal()?e:d)-f,Math.min(f,k)),this.paintRoundedSwimlane(a,b,c,d,e,f,k,this.laneFill,g)):this.paintSwimlane(a,b,c,d,e,f,this.laneFill,g);g=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);
-this.paintSeparator(a,b,c,d,e,f,g);null!=this.image&&(e=this.getImageBounds(b,c,d,e),a.image(e.x-b,e.y-c,e.width,e.height,this.image,!1,!1,!1));this.glass&&(a.setShadow(!1),this.paintGlassEffect(a,0,0,d,f,k))};
-mxSwimlane.prototype.paintSwimlane=function(a,b,c,d,e,f,g,k){a.begin();var l=!0;null!=this.style&&(l="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));this.isHorizontal()?(a.moveTo(0,f),a.lineTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.fillAndStroke(),f<e&&(g!=mxConstants.NONE&&l||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(0,f),a.lineTo(0,e),a.lineTo(d,e),a.lineTo(d,f),g==mxConstants.NONE?a.stroke():a.fillAndStroke())):(a.moveTo(f,0),a.lineTo(0,
-0),a.lineTo(0,e),a.lineTo(f,e),a.fillAndStroke(),f<d&&(g!=mxConstants.NONE&&l||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(f,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(f,e),g==mxConstants.NONE?a.stroke():a.fillAndStroke()));k&&this.paintDivider(a,b,c,d,e,f,g==mxConstants.NONE)};
-mxSwimlane.prototype.paintRoundedSwimlane=function(a,b,c,d,e,f,g,k,l){a.begin();var m=!0;null!=this.style&&(m="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,g),a.quadTo(d,0,d-Math.min(d/2,g),0),a.lineTo(Math.min(d/2,g),0),a.quadTo(0,0,0,g),a.lineTo(0,f),a.fillAndStroke(),f<e&&(k!=mxConstants.NONE&&m||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(0,f),a.lineTo(0,e-g),a.quadTo(0,e,Math.min(d/2,g),
-e),a.lineTo(d-Math.min(d/2,g),e),a.quadTo(d,e,d,e-g),a.lineTo(d,f),k==mxConstants.NONE?a.stroke():a.fillAndStroke())):(a.moveTo(f,0),a.lineTo(g,0),a.quadTo(0,0,0,Math.min(e/2,g)),a.lineTo(0,e-Math.min(e/2,g)),a.quadTo(0,e,g,e),a.lineTo(f,e),a.fillAndStroke(),f<d&&(k!=mxConstants.NONE&&m||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(f,e),a.lineTo(d-g,e),a.quadTo(d,e,d,e-Math.min(e/2,g)),a.lineTo(d,Math.min(e/2,g)),a.quadTo(d,0,d-g,0),a.lineTo(f,0),k==mxConstants.NONE?
-a.stroke():a.fillAndStroke()));l&&this.paintDivider(a,b,c,d,e,f,k==mxConstants.NONE)};mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.begin();this.isHorizontal()?(a.moveTo(0,f),a.lineTo(d,f)):(a.moveTo(f,0),a.lineTo(f,e));a.stroke()};mxSwimlane.prototype.paintSeparator=function(a,b,c,d,e,f,g){g!=mxConstants.NONE&&(a.setStrokeColor(g),a.setDashed(!0),a.begin(),this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,e)):(a.moveTo(f,0),a.lineTo(d,0)),a.stroke(),a.setDashed(!1))};
+mxSwimlane.prototype.paintVertexShape=function(a,b,c,d,e){if(!this.outline){var f=this.getTitleSize(),g=0,f=this.isHorizontal()?Math.min(f,e):Math.min(f,d);a.translate(b,c);this.isRounded?(g=this.getSwimlaneArcSize(d,e,f),g=Math.min((this.isHorizontal()?e:d)-f,Math.min(f,g)),this.paintRoundedSwimlane(a,b,c,d,e,f,g)):this.paintSwimlane(a,b,c,d,e,f);var k=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);this.paintSeparator(a,b,c,d,e,f,k);null!=this.image&&(e=this.getImageBounds(b,
+c,d,e),a.image(e.x-b,e.y-c,e.width,e.height,this.image,!1,!1,!1));this.glass&&(a.setShadow(!1),this.paintGlassEffect(a,0,0,d,f,g))}};mxSwimlane.prototype.configurePointerEvents=function(a){var b=!0,c=!0,d=!0;null!=this.style&&(b="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),c=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),d=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));(b||c||d)&&mxShape.prototype.configurePointerEvents.apply(this,arguments)};
+mxSwimlane.prototype.paintSwimlane=function(a,b,c,d,e,f){var g=this.laneFill,k=!0,l=!0,m=!0,n=!0;null!=this.style&&(k="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),l=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),m=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),n=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));this.isHorizontal()?(a.begin(),a.moveTo(0,f),a.lineTo(0,0),a.lineTo(d,0),a.lineTo(d,f),m?a.fillAndStroke():
+a.fill(),f<e&&(g!=mxConstants.NONE&&k||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(0,f),a.lineTo(0,e),a.lineTo(d,e),a.lineTo(d,f),n?g==mxConstants.NONE?a.stroke():n&&a.fillAndStroke():g!=mxConstants.NONE&&a.fill())):(a.begin(),a.moveTo(f,0),a.lineTo(0,0),a.lineTo(0,e),a.lineTo(f,e),m?a.fillAndStroke():a.fill(),f<d&&(g!=mxConstants.NONE&&k||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(f,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(f,e),
+n?g==mxConstants.NONE?a.stroke():n&&a.fillAndStroke():g!=mxConstants.NONE&&a.fill()));l&&this.paintDivider(a,b,c,d,e,f,g==mxConstants.NONE)};
+mxSwimlane.prototype.paintRoundedSwimlane=function(a,b,c,d,e,f,g){var k=this.laneFill,l=!0,m=!0,n=!0,p=!0;null!=this.style&&(l="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),m=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),n=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),p=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));this.isHorizontal()?(a.begin(),a.moveTo(d,f),a.lineTo(d,g),a.quadTo(d,0,d-Math.min(d/2,g),0),a.lineTo(Math.min(d/
+2,g),0),a.quadTo(0,0,0,g),a.lineTo(0,f),n?a.fillAndStroke():a.fill(),f<e&&(k!=mxConstants.NONE&&l||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(0,f),a.lineTo(0,e-g),a.quadTo(0,e,Math.min(d/2,g),e),a.lineTo(d-Math.min(d/2,g),e),a.quadTo(d,e,d,e-g),a.lineTo(d,f),p?k==mxConstants.NONE?a.stroke():p&&a.fillAndStroke():k!=mxConstants.NONE&&a.fill())):(a.begin(),a.moveTo(f,0),a.lineTo(g,0),a.quadTo(0,0,0,Math.min(e/2,g)),a.lineTo(0,e-Math.min(e/2,g)),a.quadTo(0,e,g,e),a.lineTo(f,
+e),n?a.fillAndStroke():a.fill(),f<d&&(k!=mxConstants.NONE&&l||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(f,e),a.lineTo(d-g,e),a.quadTo(d,e,d,e-Math.min(e/2,g)),a.lineTo(d,Math.min(e/2,g)),a.quadTo(d,0,d-g,0),a.lineTo(f,0),p?k==mxConstants.NONE?a.stroke():p&&a.fillAndStroke():k!=mxConstants.NONE&&a.fill()));m&&this.paintDivider(a,b,c,d,e,f,k==mxConstants.NONE)};
+mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){0!=f&&(g||a.setShadow(!1),a.begin(),this.isHorizontal()?(a.moveTo(0,f),a.lineTo(d,f)):(a.moveTo(f,0),a.lineTo(f,e)),a.stroke())};mxSwimlane.prototype.paintSeparator=function(a,b,c,d,e,f,g){g!=mxConstants.NONE&&(a.setStrokeColor(g),a.setDashed(!0),a.begin(),this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,e)):(a.moveTo(f,0),a.lineTo(d,0)),a.stroke(),a.setDashed(!1))};
mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.resizeCell=function(a,b){};mxGraphLayout.prototype.execute=function(a){};
mxGraphLayout.prototype.getGraph=function(){return this.graph};mxGraphLayout.prototype.getConstraint=function(a,b,c,d){return this.graph.getCurrentCellStyle(b)[a]};
mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}};
@@ -2100,59 +2102,59 @@ Editor.prototype.setFilename=function(a){this.filename=a};
Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(a,c){b.undoableEditHappened(c.getProperty("edit"))};var c=mxUtils.bind(this,function(a,b){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,c);a.getView().addListener(mxEvent.UNDO,c);c=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 e=[],k=0;k<
d.length;k++)null!=a.view.getState(d[k])&&e.push(d[k]);a.setSelectionCells(e)}};b.addListener(mxEvent.UNDO,c);b.addListener(mxEvent.REDO,c);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,c,e,d,f,h,k,g,m,l){var n=g?57:0,p=c,r=e,u=g?0:64,v=Editor.inlineFullscreen||null==a.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(a.embedViewport);null==a.embedViewport&&null!=window.innerHeight&&(v.height=window.innerHeight);var t=v.height,x=Math.max(1,Math.round((v.width-c-u)/2)),w=Math.max(1,Math.round((t-e-a.footerHeight)/3));b.style.maxHeight="100%";c=null!=document.body?Math.min(c,document.body.scrollWidth-u):c;e=Math.min(e,t-u);0<a.dialogs.length&&(this.zIndex+=
+function Dialog(a,b,c,e,d,f,h,k,g,l,m){var n=g?57:0,p=c,r=e,u=g?0:64,v=Editor.inlineFullscreen||null==a.embedViewport?mxUtils.getDocumentSize():mxUtils.clone(a.embedViewport);null==a.embedViewport&&null!=window.innerHeight&&(v.height=window.innerHeight);var t=v.height,x=Math.max(1,Math.round((v.width-c-u)/2)),w=Math.max(1,Math.round((t-e-a.footerHeight)/3));b.style.maxHeight="100%";c=null!=document.body?Math.min(c,document.body.scrollWidth-u):c;e=Math.min(e,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";x+=v.x;w+=v.y;Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px",
w+=a.embedViewport.y,x+=a.embedViewport.x);d&&document.body.appendChild(this.bg);var y=a.createDiv(g?"geTransDialog":"geDialog");d=this.getPosition(x,w,c,e);x=d.x;w=d.y;y.style.width=c+"px";y.style.height=e+"px";y.style.left=x+"px";y.style.top=w+"px";y.style.zIndex=this.zIndex;y.appendChild(b);document.body.appendChild(y);!k&&b.clientHeight>y.clientHeight-u&&(b.style.overflowY="auto");b.style.overflowX="hidden";if(f&&(f=document.createElement("img"),f.setAttribute("src",Dialog.prototype.closeImage),
-f.setAttribute("title",mxResources.get("close")),f.className="geDialogClose",f.style.top=w+14+"px",f.style.left=x+c+38-n+"px",f.style.zIndex=this.zIndex,mxEvent.addListener(f,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(f),this.dialogImg=f,!l)){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!=m){var d=m();
+f.setAttribute("title",mxResources.get("close")),f.className="geDialogClose",f.style.top=w+14+"px",f.style.left=x+c+38-n+"px",f.style.zIndex=this.zIndex,mxEvent.addListener(f,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(f),this.dialogImg=f,!m)){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 d=l();
null!=d&&(p=c=d.w,r=e=d.h)}d=mxUtils.getDocumentSize();t=d.height;this.bg.style.height=t+"px";Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=mxUtils.getDocumentSize().height+"px");x=Math.max(1,Math.round((d.width-c-u)/2));w=Math.max(1,Math.round((t-e-a.footerHeight)/3));c=null!=document.body?Math.min(p,document.body.scrollWidth-u):p;e=Math.min(r,t-u);d=this.getPosition(x,w,c,e);x=d.x;w=d.y;y.style.left=x+"px";y.style.top=w+"px";y.style.width=c+"px";y.style.height=e+"px";!k&&
b.clientHeight>y.clientHeight-u&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=w+14+"px",this.dialogImg.style.left=x+c+38-n+"px")});mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=h;this.container=y;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+
"/clear.gif";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,c,e,d,f,h,k,g,m,l){g=null!=g?g:!0;var n=document.createElement("div");n.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);n.appendChild(p)}b=
-document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";b.innerHTML=c;n.appendChild(b);c=document.createElement("div");c.style.marginTop="12px";c.style.textAlign="center";null!=f&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();f()}),b.className="geBtn",c.appendChild(b),c.style.textAlign="center");null!=m&&(m=mxUtils.button(m,function(){null!=l&&l()}),m.className="geBtn",c.appendChild(m));var r=mxUtils.button(e,function(){g&&a.hideDialog();null!=d&&d()});
+var ErrorDialog=function(a,b,c,e,d,f,h,k,g,l,m){g=null!=g?g:!0;var n=document.createElement("div");n.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);n.appendChild(p)}b=
+document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";b.innerHTML=c;n.appendChild(b);c=document.createElement("div");c.style.marginTop="12px";c.style.textAlign="center";null!=f&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();f()}),b.className="geBtn",c.appendChild(b),c.style.textAlign="center");null!=l&&(l=mxUtils.button(l,function(){null!=m&&m()}),l.className="geBtn",c.appendChild(l));var r=mxUtils.button(e,function(){g&&a.hideDialog();null!=d&&d()});
r.className="geBtn";c.appendChild(r);null!=h&&(e=mxUtils.button(h,function(){g&&a.hideDialog();null!=k&&k()}),e.className="geBtn gePrimaryBtn",c.appendChild(e));this.init=function(){r.focus()};n.appendChild(c);this.container=n},PrintDialog=function(a,b){this.create(a,b)};
-PrintDialog.prototype.create=function(a){function b(a){var b=k.checked||m.checked,d=parseInt(n.value)/100;isNaN(d)&&(d=1,n.value="100%");var d=.75*d,e=c.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,f=1/c.pageScale;if(b){var g=k.checked?1:parseInt(l.value);isNaN(g)||(f=mxUtils.getScaleForPageCount(g,c,e))}c.getGraphBounds();var h=g=0,e=mxRectangle.fromRectangle(e);e.width=Math.ceil(e.width*d);e.height=Math.ceil(e.height*d);f*=d;!b&&c.pageVisible?(d=c.getPageLayout(),g-=d.x*e.width,h-=d.y*e.height):
+PrintDialog.prototype.create=function(a){function b(a){var b=k.checked||l.checked,d=parseInt(n.value)/100;isNaN(d)&&(d=1,n.value="100%");var d=.75*d,e=c.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,f=1/c.pageScale;if(b){var g=k.checked?1:parseInt(m.value);isNaN(g)||(f=mxUtils.getScaleForPageCount(g,c,e))}c.getGraphBounds();var h=g=0,e=mxRectangle.fromRectangle(e);e.width=Math.ceil(e.width*d);e.height=Math.ceil(e.height*d);f*=d;!b&&c.pageVisible?(d=c.getPageLayout(),g-=d.x*e.width,h-=d.y*e.height):
b=!0;b=PrintDialog.createPrintPreview(c,f,e,0,g,h,b);b.open();a&&PrintDialog.printPreview(b)}var c=a.editor.graph,e,d,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var h=document.createElement("tbody");e=document.createElement("tr");var k=document.createElement("input");k.setAttribute("type","checkbox");d=document.createElement("td");d.setAttribute("colspan","2");d.style.fontSize="10pt";d.appendChild(k);var g=document.createElement("span");mxUtils.write(g," "+mxResources.get("fitPage"));
-d.appendChild(g);mxEvent.addListener(g,"click",function(a){k.checked=!k.checked;m.checked=!k.checked;mxEvent.consume(a)});mxEvent.addListener(k,"change",function(){m.checked=!k.checked});e.appendChild(d);h.appendChild(e);e=e.cloneNode(!1);var m=document.createElement("input");m.setAttribute("type","checkbox");d=document.createElement("td");d.style.fontSize="10pt";d.appendChild(m);g=document.createElement("span");mxUtils.write(g," "+mxResources.get("posterPrint")+":");d.appendChild(g);mxEvent.addListener(g,
-"click",function(a){m.checked=!m.checked;k.checked=!m.checked;mxEvent.consume(a)});e.appendChild(d);var l=document.createElement("input");l.setAttribute("value","1");l.setAttribute("type","number");l.setAttribute("min","1");l.setAttribute("size","4");l.setAttribute("disabled","disabled");l.style.width="50px";d=document.createElement("td");d.style.fontSize="10pt";d.appendChild(l);mxUtils.write(d," "+mxResources.get("pages")+" (max)");e.appendChild(d);h.appendChild(e);mxEvent.addListener(m,"change",
-function(){m.checked?l.removeAttribute("disabled"):l.setAttribute("disabled","disabled");k.checked=!m.checked});e=e.cloneNode(!1);d=document.createElement("td");mxUtils.write(d,mxResources.get("pageScale")+":");e.appendChild(d);d=document.createElement("td");var n=document.createElement("input");n.setAttribute("value","100 %");n.setAttribute("size","5");n.style.width="50px";d.appendChild(n);e.appendChild(d);h.appendChild(e);e=document.createElement("tr");d=document.createElement("td");d.colSpan=2;
+d.appendChild(g);mxEvent.addListener(g,"click",function(a){k.checked=!k.checked;l.checked=!k.checked;mxEvent.consume(a)});mxEvent.addListener(k,"change",function(){l.checked=!k.checked});e.appendChild(d);h.appendChild(e);e=e.cloneNode(!1);var l=document.createElement("input");l.setAttribute("type","checkbox");d=document.createElement("td");d.style.fontSize="10pt";d.appendChild(l);g=document.createElement("span");mxUtils.write(g," "+mxResources.get("posterPrint")+":");d.appendChild(g);mxEvent.addListener(g,
+"click",function(a){l.checked=!l.checked;k.checked=!l.checked;mxEvent.consume(a)});e.appendChild(d);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";d=document.createElement("td");d.style.fontSize="10pt";d.appendChild(m);mxUtils.write(d," "+mxResources.get("pages")+" (max)");e.appendChild(d);h.appendChild(e);mxEvent.addListener(l,"change",
+function(){l.checked?m.removeAttribute("disabled"):m.setAttribute("disabled","disabled");k.checked=!l.checked});e=e.cloneNode(!1);d=document.createElement("td");mxUtils.write(d,mxResources.get("pageScale")+":");e.appendChild(d);d=document.createElement("td");var n=document.createElement("input");n.setAttribute("value","100 %");n.setAttribute("size","5");n.style.width="50px";d.appendChild(n);e.appendChild(d);h.appendChild(e);e=document.createElement("tr");d=document.createElement("td");d.colSpan=2;
d.style.paddingTop="20px";d.setAttribute("align","right");g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});g.className="geBtn";a.editor.cancelFirst&&d.appendChild(g);if(PrintDialog.previewEnabled){var p=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});p.className="geBtn";d.appendChild(p)}p=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});p.className="geBtn gePrimaryBtn";d.appendChild(p);a.editor.cancelFirst||
d.appendChild(g);e.appendChild(d);h.appendChild(e);f.appendChild(h);this.container=f};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(c){}};
PrintDialog.createPrintPreview=function(a,b,c,e,d,f,h){b=new mxPrintPreview(a,b,c,e,d,f);b.title=mxResources.get("preview");b.printBackgroundImage=!0;b.autoOrigin=h;a=a.background;if(null==a||""==a||a==mxConstants.NONE)a="#ffffff";b.backgroundColor=a;var k=b.writeHead;b.writeHead=function(a){k.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==l||l==mxConstants.NONE?(m.style.backgroundColor="",m.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(m.style.backgroundColor=l,m.style.backgroundImage="")}function c(){var b=u;null!=b&&Graph.isPageLink(b.src)&&(b=a.createImageForPageLink(b.src,null));null!=b&&null!=b.src?(r.setAttribute("src",b.src),r.style.display=""):(r.removeAttribute("src"),r.style.display="none")}var e=a.editor.graph,d,f,h=document.createElement("table");h.style.width=
+var PageSetupDialog=function(a){function b(){null==m||m==mxConstants.NONE?(l.style.backgroundColor="",l.style.backgroundImage="url('"+Dialog.prototype.noColorImage+"')"):(l.style.backgroundColor=m,l.style.backgroundImage="")}function c(){var b=u;null!=b&&Graph.isPageLink(b.src)&&(b=a.createImageForPageLink(b.src,null));null!=b&&null!=b.src?(r.setAttribute("src",b.src),r.style.display=""):(r.removeAttribute("src"),r.style.display="none")}var e=a.editor.graph,d,f,h=document.createElement("table");h.style.width=
"100%";h.style.height="100%";var k=document.createElement("tbody");d=document.createElement("tr");f=document.createElement("td");f.style.verticalAlign="top";f.style.fontSize="10pt";mxUtils.write(f,mxResources.get("paperSize")+":");d.appendChild(f);f=document.createElement("td");f.style.verticalAlign="top";f.style.fontSize="10pt";var g=PageSetupDialog.addPageFormatPanel(f,"pagesetupdialog",e.pageFormat);d.appendChild(f);k.appendChild(d);d=document.createElement("tr");f=document.createElement("td");
-mxUtils.write(f,mxResources.get("background")+":");d.appendChild(f);f=document.createElement("td");f.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var m=document.createElement("button");m.style.width="22px";m.style.height="22px";m.style.cursor="pointer";m.style.marginRight="20px";m.style.backgroundPosition="center center";m.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(m.style.position="relative",m.style.top="-6px");var l=e.background;b();mxEvent.addListener(m,
-"click",function(c){a.pickColor(l||"none",function(a){l=a;b()});mxEvent.consume(c)});f.appendChild(m);mxUtils.write(f,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=e.getGridSize();f.appendChild(n);mxEvent.addListener(n,"change",function(){var a=parseInt(n.value);n.value=Math.max(1,isNaN(a)?e.getGridSize():a)});d.appendChild(f);k.appendChild(d);d=document.createElement("tr");
+mxUtils.write(f,mxResources.get("background")+":");d.appendChild(f);f=document.createElement("td");f.style.whiteSpace="nowrap";document.createElement("input").setAttribute("type","text");var l=document.createElement("button");l.style.width="22px";l.style.height="22px";l.style.cursor="pointer";l.style.marginRight="20px";l.style.backgroundPosition="center center";l.style.backgroundRepeat="no-repeat";mxClient.IS_FF&&(l.style.position="relative",l.style.top="-6px");var m=e.background;b();mxEvent.addListener(l,
+"click",function(c){a.pickColor(m||"none",function(a){m=a;b()});mxEvent.consume(c)});f.appendChild(l);mxUtils.write(f,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=e.getGridSize();f.appendChild(n);mxEvent.addListener(n,"change",function(){var a=parseInt(n.value);n.value=Math.max(1,isNaN(a)?e.getGridSize():a)});d.appendChild(f);k.appendChild(d);d=document.createElement("tr");
f=document.createElement("td");mxUtils.write(f,mxResources.get("image")+":");d.appendChild(f);f=document.createElement("td");var p=document.createElement("button");p.className="geBtn";p.style.margin="0px";mxUtils.write(p,mxResources.get("change")+"...");var r=document.createElement("img");r.setAttribute("valign","middle");r.style.verticalAlign="middle";r.style.border="1px solid lightGray";r.style.borderRadius="4px";r.style.marginRight="14px";r.style.maxWidth="100px";r.style.cursor="pointer";r.style.height=
"60px";r.style.padding="4px";var u=e.backgroundImage,v=function(b){a.showBackgroundImageDialog(function(a,b){b||(u=a,c())},u);mxEvent.consume(b)};mxEvent.addListener(p,"click",v);mxEvent.addListener(r,"click",v);c();f.appendChild(r);f.appendChild(p);d.appendChild(f);k.appendChild(d);d=document.createElement("tr");f=document.createElement("td");f.colSpan=2;f.style.paddingTop="16px";f.setAttribute("align","right");p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});p.className="geBtn";
-a.editor.cancelFirst&&f.appendChild(p);v=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=parseInt(n.value);isNaN(b)||e.gridSize===b||e.setGridSize(b);b=new ChangePageSetup(a,l,u,g.get());b.ignoreColor=e.background==l;b.ignoreImage=(null!=e.backgroundImage?e.backgroundImage.src:null)===(null!=u?u.src:null);e.pageFormat.width==b.previousFormat.width&&e.pageFormat.height==b.previousFormat.height&&b.ignoreColor&&b.ignoreImage||e.model.execute(b)});v.className="geBtn gePrimaryBtn";
+a.editor.cancelFirst&&f.appendChild(p);v=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var b=parseInt(n.value);isNaN(b)||e.gridSize===b||e.setGridSize(b);b=new ChangePageSetup(a,m,u,g.get());b.ignoreColor=e.background==m;b.ignoreImage=(null!=e.backgroundImage?e.backgroundImage.src:null)===(null!=u?u.src:null);e.pageFormat.width==b.previousFormat.width&&e.pageFormat.height==b.previousFormat.height&&b.ignoreColor&&b.ignoreImage||e.model.execute(b)});v.className="geBtn gePrimaryBtn";
f.appendChild(v);a.editor.cancelFirst||f.appendChild(p);d.appendChild(f);k.appendChild(d);h.appendChild(k);this.container=h};
PageSetupDialog.addPageFormatPanel=function(a,b,c,e){function d(a,b,d){if(d||n!=document.activeElement&&p!=document.activeElement){a=!1;for(b=0;b<u.length;b++)d=u[b],w?"custom"==d.key&&(k.value=d.key,w=!1):null!=d.format&&("a4"==d.key?826==c.width?(c=mxRectangle.fromRectangle(c),c.width=827):826==c.height&&(c=mxRectangle.fromRectangle(c),c.height=827):"a5"==d.key&&(584==c.width?(c=mxRectangle.fromRectangle(c),c.width=583):584==c.height&&(c=mxRectangle.fromRectangle(c),c.height=583)),c.width==d.format.width&&
-c.height==d.format.height?(k.value=d.key,f.setAttribute("checked","checked"),f.defaultChecked=!0,f.checked=!0,h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1,a=!0):c.width==d.format.height&&c.height==d.format.width&&(k.value=d.key,f.removeAttribute("checked"),f.defaultChecked=!1,f.checked=!1,h.setAttribute("checked","checked"),h.defaultChecked=!0,a=h.checked=!0));a?(g.style.display="",l.style.display="none"):(n.value=c.width/100,p.value=c.height/100,f.setAttribute("checked","checked"),
-k.value="custom",g.style.display="none",l.style.display="")}}b="format-"+b;var f=document.createElement("input");f.setAttribute("name",b);f.setAttribute("type","radio");f.setAttribute("value","portrait");var h=document.createElement("input");h.setAttribute("name",b);h.setAttribute("type","radio");h.setAttribute("value","landscape");var k=document.createElement("select");k.style.marginBottom="8px";k.style.borderRadius="4px";k.style.border="1px solid rgb(160, 160, 160)";k.style.width="206px";var g=
-document.createElement("div");g.style.marginLeft="4px";g.style.width="210px";g.style.height="24px";f.style.marginRight="6px";g.appendChild(f);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));g.appendChild(b);h.style.marginLeft="10px";h.style.marginRight="6px";g.appendChild(h);var m=document.createElement("span");m.style.width="100px";mxUtils.write(m,mxResources.get("landscape"));g.appendChild(m);var l=document.createElement("div");l.style.marginLeft=
-"4px";l.style.width="210px";l.style.height="24px";var n=document.createElement("input");n.setAttribute("size","7");n.style.textAlign="right";l.appendChild(n);mxUtils.write(l," in x ");var p=document.createElement("input");p.setAttribute("size","7");p.style.textAlign="right";l.appendChild(p);mxUtils.write(l," in");g.style.display="none";l.style.display="none";for(var r={},u=PageSetupDialog.getFormats(),v=0;v<u.length;v++){var t=u[v];r[t.key]=t;var x=document.createElement("option");x.setAttribute("value",
-t.key);mxUtils.write(x,t.title);k.appendChild(x)}var w=!1;d();a.appendChild(k);mxUtils.br(a);a.appendChild(g);a.appendChild(l);var y=c,E=function(a,b){var d=r[k.value];null!=d.format?(n.value=d.format.width/100,p.value=d.format.height/100,l.style.display="none",g.style.display=""):(g.style.display="none",l.style.display="");d=parseFloat(n.value);if(isNaN(d)||0>=d)n.value=c.width/100;d=parseFloat(p.value);if(isNaN(d)||0>=d)p.value=c.height/100;d=new mxRectangle(0,0,Math.floor(100*parseFloat(n.value)),
-Math.floor(100*parseFloat(p.value)));"custom"!=k.value&&h.checked&&(d=new mxRectangle(0,0,d.height,d.width));b&&w||d.width==y.width&&d.height==y.height||(y=d,null!=e&&e(y))};mxEvent.addListener(b,"click",function(a){f.checked=!0;E(a);mxEvent.consume(a)});mxEvent.addListener(m,"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(f,
+c.height==d.format.height?(k.value=d.key,f.setAttribute("checked","checked"),f.defaultChecked=!0,f.checked=!0,h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1,a=!0):c.width==d.format.height&&c.height==d.format.width&&(k.value=d.key,f.removeAttribute("checked"),f.defaultChecked=!1,f.checked=!1,h.setAttribute("checked","checked"),h.defaultChecked=!0,a=h.checked=!0));a?(g.style.display="",m.style.display="none"):(n.value=c.width/100,p.value=c.height/100,f.setAttribute("checked","checked"),
+k.value="custom",g.style.display="none",m.style.display="")}}b="format-"+b;var f=document.createElement("input");f.setAttribute("name",b);f.setAttribute("type","radio");f.setAttribute("value","portrait");var h=document.createElement("input");h.setAttribute("name",b);h.setAttribute("type","radio");h.setAttribute("value","landscape");var k=document.createElement("select");k.style.marginBottom="8px";k.style.borderRadius="4px";k.style.border="1px solid rgb(160, 160, 160)";k.style.width="206px";var g=
+document.createElement("div");g.style.marginLeft="4px";g.style.width="210px";g.style.height="24px";f.style.marginRight="6px";g.appendChild(f);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));g.appendChild(b);h.style.marginLeft="10px";h.style.marginRight="6px";g.appendChild(h);var l=document.createElement("span");l.style.width="100px";mxUtils.write(l,mxResources.get("landscape"));g.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");g.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 x=document.createElement("option");x.setAttribute("value",
+t.key);mxUtils.write(x,t.title);k.appendChild(x)}var w=!1;d();a.appendChild(k);mxUtils.br(a);a.appendChild(g);a.appendChild(m);var y=c,E=function(a,b){var d=r[k.value];null!=d.format?(n.value=d.format.width/100,p.value=d.format.height/100,m.style.display="none",g.style.display=""):(g.style.display="none",m.style.display="");d=parseFloat(n.value);if(isNaN(d)||0>=d)n.value=c.width/100;d=parseFloat(p.value);if(isNaN(d)||0>=d)p.value=c.height/100;d=new mxRectangle(0,0,Math.floor(100*parseFloat(n.value)),
+Math.floor(100*parseFloat(p.value)));"custom"!=k.value&&h.checked&&(d=new mxRectangle(0,0,d.height,d.width));b&&w||d.width==y.width&&d.height==y.height||(y=d,null!=e&&e(y))};mxEvent.addListener(b,"click",function(a){f.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(f,
"change",E);mxEvent.addListener(k,"change",function(a){w="custom"==k.value;E(a,!0)});E();return{set:function(a){c=a;d(null,null,!0)},get:function(){return y},widthInput:n,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,b,c,e,d,f,h,k,g,m,l,n){g=null!=g?g:!0;var p,r,u=document.createElement("table"),v=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";p=document.createElement("tr");r=document.createElement("td");r.style.textOverflow="ellipsis";r.style.textAlign="right";r.style.maxWidth="100px";r.style.fontSize="10pt";r.style.width="84px";mxUtils.write(r,(d||mxResources.get("filename"))+":");p.appendChild(r);var t=document.createElement("input");
+var FilenameDialog=function(a,b,c,e,d,f,h,k,g,l,m,n){g=null!=g?g:!0;var p,r,u=document.createElement("table"),v=document.createElement("tbody");u.style.position="absolute";u.style.top="30px";u.style.left="20px";p=document.createElement("tr");r=document.createElement("td");r.style.textOverflow="ellipsis";r.style.textAlign="right";r.style.maxWidth="100px";r.style.fontSize="10pt";r.style.width="84px";mxUtils.write(r,(d||mxResources.get("filename"))+":");p.appendChild(r);var t=document.createElement("input");
t.setAttribute("value",b||"");t.style.marginLeft="4px";t.style.width=null!=n?n+"px":"180px";var x=mxUtils.button(c,function(){if(null==f||f(t.value))g&&a.hideDialog(),e(t.value)});x.className="geBtn gePrimaryBtn";this.init=function(){if(null!=d||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")),x.click());a.stopPropagation();
-a.preventDefault()}))}}};r=document.createElement("td");r.style.whiteSpace="nowrap";r.appendChild(t);p.appendChild(r);if(null!=d||null==h)v.appendChild(p),null!=l&&(r.appendChild(FilenameDialog.createTypeHint(a,t,l)),null!=a.editor.diagramFileTypes&&(p=document.createElement("tr"),r=document.createElement("td"),r.style.textOverflow="ellipsis",r.style.textAlign="right",r.style.maxWidth="100px",r.style.fontSize="10pt",r.style.width="84px",mxUtils.write(r,mxResources.get("type")+":"),p.appendChild(r),
+a.preventDefault()}))}}};r=document.createElement("td");r.style.whiteSpace="nowrap";r.appendChild(t);p.appendChild(r);if(null!=d||null==h)v.appendChild(p),null!=m&&(r.appendChild(FilenameDialog.createTypeHint(a,t,m)),null!=a.editor.diagramFileTypes&&(p=document.createElement("tr"),r=document.createElement("td"),r.style.textOverflow="ellipsis",r.style.textAlign="right",r.style.maxWidth="100px",r.style.fontSize="10pt",r.style.width="84px",mxUtils.write(r,mxResources.get("type")+":"),p.appendChild(r),
r=document.createElement("td"),r.style.whiteSpace="nowrap",p.appendChild(r),b=FilenameDialog.createFileTypes(a,t,a.editor.diagramFileTypes),b.style.marginLeft="4px",b.style.width="198px",r.appendChild(b),t.style.width=null!=n?n-40+"px":"190px",p.appendChild(r),v.appendChild(p)));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=
-null!=l?"12px":"20px";r.style.whiteSpace="nowrap";r.setAttribute("align","right");l=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=m&&m()});l.className="geBtn";a.editor.cancelFirst&&r.appendChild(l);null!=k&&(n=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(k)}),n.className="geBtn",r.appendChild(n));mxEvent.addListener(t,"keypress",function(a){13==a.keyCode&&x.click()});r.appendChild(x);a.editor.cancelFirst||r.appendChild(l);p.appendChild(r);v.appendChild(p);
+null!=m?"12px":"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!=k&&(n=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(k)}),n.className="geBtn",r.appendChild(n));mxEvent.addListener(t,"keypress",function(a){13==a.keyCode&&x.click()});r.appendChild(x);a.editor.cancelFirst||r.appendChild(m);p.appendChild(r);v.appendChild(p);
u.appendChild(v);this.container=u};FilenameDialog.filenameHelpLink=null;
FilenameDialog.createTypeHint=function(a,b,c){var e=document.createElement("img");e.style.backgroundPosition="center bottom";e.style.backgroundRepeat="no-repeat";e.style.margin="2px 0 0 4px";e.style.verticalAlign="top";e.style.cursor="pointer";e.style.height="16px";e.style.width="16px";mxUtils.setOpacity(e,70);var d=function(){e.setAttribute("src",Editor.helpImage);e.setAttribute("title",mxResources.get("help"));for(var a=0;a<c.length;a++)if(0<c[a].ext.length&&b.value.toLowerCase().substring(b.value.length-
c[a].ext.length-1)=="."+c[a].ext){e.setAttribute("title",mxResources.get(c[a].title));break}};mxEvent.addListener(b,"keyup",d);mxEvent.addListener(b,"change",d);mxEvent.addListener(e,"click",function(b){var c=e.getAttribute("title");e.getAttribute("src")==Editor.helpImage?a.editor.graph.openLink(FilenameDialog.filenameHelpLink):""!=c&&a.showError(null,c,mxResources.get("help"),function(){a.editor.graph.openLink(FilenameDialog.filenameHelpLink)},null,mxResources.get("ok"),null,null,null,340,90);mxEvent.consume(b)});
d();return e};
FilenameDialog.createFileTypes=function(a,b,c){var e=document.createElement("select");for(a=0;a<c.length;a++){var d=document.createElement("option");d.setAttribute("value",a);mxUtils.write(d,mxResources.get(c[a].description)+" (."+c[a].extension+")");e.appendChild(d)}mxEvent.addListener(e,"change",function(a){a=c[e.value].extension;var d=b.value.lastIndexOf(".drawio."),d=0<d?d:b.value.lastIndexOf(".");"drawio"!=a&&(a="drawio."+a);b.value=0<d?b.value.substring(0,d+1)+a:b.value+"."+a;"createEvent"in
-document?(a=document.createEvent("HTMLEvents"),a.initEvent("change",!1,!0),b.dispatchEvent(a)):b.fireEvent("onchange")});a=function(a){a=b.value.toLowerCase();for(var d=0,f=0;f<c.length;f++){var g=c[f].extension,m=null;"drawio"!=g&&(m=g,g=".drawio."+g);if(a.substring(a.length-g.length-1)=="."+g||null!=m&&a.substring(a.length-m.length-1)=="."+m){d=f;break}}e.value=d};mxEvent.addListener(b,"change",a);mxEvent.addListener(b,"keyup",a);a();return e};
+document?(a=document.createEvent("HTMLEvents"),a.initEvent("change",!1,!0),b.dispatchEvent(a)):b.fireEvent("onchange")});a=function(a){a=b.value.toLowerCase();for(var d=0,f=0;f<c.length;f++){var g=c[f].extension,l=null;"drawio"!=g&&(l=g,g=".drawio."+g);if(a.substring(a.length-g.length-1)=="."+g||null!=l&&a.substring(a.length-l.length-1)=="."+l){d=f;break}}e.value=d};mxEvent.addListener(b,"change",a);mxEvent.addListener(b,"keyup",a);a();return e};
(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()}};
@@ -2172,10 +2174,10 @@ this.graph.isCellSelected(a)&&!this.graph.isToggleEvent(c.getEvent())||this.grap
"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.selectionStateListener=mxUtils.bind(this,function(a,b){this.clearSelectionState()});e.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionStateListener);e.getModel().addListener(mxEvent.CHANGE,this.selectionStateListener);
e.addListener(mxEvent.EDITING_STARTED,this.selectionStateListener);e.addListener(mxEvent.EDITING_STOPPED,this.selectionStateListener);e.getView().addListener("unitChanged",this.selectionStateListener);this.editor.chromeless&&!this.editor.editable&&(this.footerHeight=0,e.isEnabled=function(){return!1},e.panningHandler.isForcePanningEvent=function(a){return!mxEvent.isPopupTrigger(a.getEvent())});this.actions=new Actions(this);this.menus=this.createMenus();if(!e.standalone){var f="rounded shadow glass dashed dashPattern labelBackgroundColor labelBorderColor comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle pointerEvents".split(" "),
h="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),k="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(a){try{var b=e.getCellStyle(a,!1),c=[],d=[],f;for(f in b)c.push(b[f]),d.push(f);e.getModel().isEdge(a)?e.currentEdgeStyle={}:e.currentVertexStyle=
-{};this.fireEvent(new mxEventObject("styleChanged","keys",d,"values",c,"cells",[a]))}catch(O){this.handleError(O)}};this.clearDefaultStyle=function(){e.currentEdgeStyle=mxUtils.clone(e.defaultEdgeStyle);e.currentVertexStyle=mxUtils.clone(e.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var g=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<g.length;b++)0>mxUtils.indexOf(f,g[b])&&f.push(g[b]);var m="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),
-l=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(b=0;b<l.length;b++)for(c=0;c<l[b].length;c++)f.push(l[b][c]);for(b=0;b<h.length;b++)0>mxUtils.indexOf(f,h[b])&&f.push(h[b]);var n=function(a,b,c,d,g,h,m){d=null!=d?d:e.currentVertexStyle;g=null!=g?g:e.currentEdgeStyle;h=null!=h?h:!0;c=null!=c?c:e.getModel();if(m){m=[];
-for(var n=0;n<a.length;n++)m=m.concat(c.getDescendants(a[n]));a=m}c.beginUpdate();try{for(n=0;n<a.length;n++){var p=a[n],r;if(b)r=["fontSize","fontFamily","fontColor"];else{var u=c.getStyle(p),R=null!=u?u.split(";"):[];r=f.slice();for(var t=0;t<R.length;t++){var v=R[t],x=v.indexOf("=");if(0<=x){var N=v.substring(0,x),E=mxUtils.indexOf(r,N);0<=E&&r.splice(E,1);for(m=0;m<l.length;m++){var y=l[m];if(0<=mxUtils.indexOf(y,N))for(var Y=0;Y<y.length;Y++){var O=mxUtils.indexOf(r,y[Y]);0<=O&&r.splice(O,1)}}}}}var w=
-c.isEdge(p);m=w?g:d;for(var J=c.getStyle(p),t=0;t<r.length;t++){var N=r[t],F=m[N];null!=F&&"edgeStyle"!=N&&("shape"!=N||w)&&(!w||h||0>mxUtils.indexOf(k,N))&&(J=mxUtils.setStyle(J,N,F))}Editor.simpleLabels&&(J=mxUtils.setStyle(mxUtils.setStyle(J,"html",null),"whiteSpace",null));c.setStyle(p,J)}}finally{c.endUpdate()}return a};e.addListener("cellsInserted",function(a,b){n(b.getProperty("cells"),null,null,null,null,!0,!0)});e.addListener("textInserted",function(a,b){n(b.getProperty("cells"),!0)});this.insertHandler=
+{};this.fireEvent(new mxEventObject("styleChanged","keys",d,"values",c,"cells",[a]))}catch(P){this.handleError(P)}};this.clearDefaultStyle=function(){e.currentEdgeStyle=mxUtils.clone(e.defaultEdgeStyle);e.currentVertexStyle=mxUtils.clone(e.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var g=["fontFamily","fontSource","fontSize","fontColor"];for(b=0;b<g.length;b++)0>mxUtils.indexOf(f,g[b])&&f.push(g[b]);var l="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),
+m=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(b=0;b<m.length;b++)for(c=0;c<m[b].length;c++)f.push(m[b][c]);for(b=0;b<h.length;b++)0>mxUtils.indexOf(f,h[b])&&f.push(h[b]);var n=function(a,b,c,d,g,h,l){d=null!=d?d:e.currentVertexStyle;g=null!=g?g:e.currentEdgeStyle;h=null!=h?h:!0;c=null!=c?c:e.getModel();if(l){l=[];
+for(var n=0;n<a.length;n++)l=l.concat(c.getDescendants(a[n]));a=l}c.beginUpdate();try{for(n=0;n<a.length;n++){var p=a[n],r;if(b)r=["fontSize","fontFamily","fontColor"];else{var u=c.getStyle(p),R=null!=u?u.split(";"):[];r=f.slice();for(var t=0;t<R.length;t++){var v=R[t],x=v.indexOf("=");if(0<=x){var O=v.substring(0,x),P=mxUtils.indexOf(r,O);0<=P&&r.splice(P,1);for(l=0;l<m.length;l++){var E=m[l];if(0<=mxUtils.indexOf(E,O))for(var y=0;y<E.length;y++){var Z=mxUtils.indexOf(r,E[y]);0<=Z&&r.splice(Z,1)}}}}}var w=
+c.isEdge(p);l=w?g:d;for(var J=c.getStyle(p),t=0;t<r.length;t++){var O=r[t],F=l[O];null!=F&&"edgeStyle"!=O&&("shape"!=O||w)&&(!w||h||0>mxUtils.indexOf(k,O))&&(J=mxUtils.setStyle(J,O,F))}Editor.simpleLabels&&(J=mxUtils.setStyle(mxUtils.setStyle(J,"html",null),"whiteSpace",null));c.setStyle(p,J)}}finally{c.endUpdate()}return a};e.addListener("cellsInserted",function(a,b){n(b.getProperty("cells"),null,null,null,null,!0,!0)});e.addListener("textInserted",function(a,b){n(b.getProperty("cells"),!0)});this.insertHandler=
n;this.createDivs();this.createUi();this.refresh();var p=mxUtils.bind(this,function(a){null==a&&(a=window.event);return e.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 b=mxEvent.getSource(a);if("A"==b.nodeName)for(;null!=b;){if("geHint"==b.className)return!0;b=b.parentNode}}return p(a)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,
"contextmenu",b):this.diagramContainer.oncontextmenu=b):e.panningHandler.usePopupTrigger=!1;e.init(this.diagramContainer);mxClient.IS_SVG&&null!=e.view.getDrawPane()&&(b=e.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=e.graphHandler){var r=e.graphHandler.start;e.graphHandler.start=function(){null!=z.hoverIcons&&z.hoverIcons.reset();r.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,
@@ -2184,11 +2186,11 @@ mxEvent.isConsumed(a)||27!=a.keyCode||this.hideDialog(null,!0):(u=!0,this.hoverI
arguments)||u||mxEvent.isMouseEvent(a.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(a.getEvent()))&&(!mxEvent.isControlDown(a.getEvent())&&mxEvent.isRightMouseButton(a.getEvent())||mxEvent.isMiddleMouseButton(a.getEvent()))};var x=e.cellEditor.isStopEditingEvent;e.cellEditor.isStopEditingEvent=function(a){return x.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 w=e.isZoomWheelEvent;
e.isZoomWheelEvent=function(){return u||w.apply(this,arguments)};var y=!1,E=null,I=null,B=null,G=mxUtils.bind(this,function(){if(null!=this.toolbar&&y!=e.cellEditor.isContentEditing()){for(var a=this.toolbar.container.firstChild,b=[];null!=a;){var c=a.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,a)&&(a.parentNode.removeChild(a),b.push(a));a=c}a=this.toolbar.fontMenu;c=this.toolbar.sizeMenu;if(null==B)this.toolbar.createTextToolbar();else{for(var d=0;d<B.length;d++)this.toolbar.container.appendChild(B[d]);
this.toolbar.fontMenu=E;this.toolbar.sizeMenu=I}y=e.cellEditor.isContentEditing();E=a;I=c;B=b}}),z=this,F=e.cellEditor.startEditing;e.cellEditor.startEditing=function(){F.apply(this,arguments);G();if(e.cellEditor.isContentEditing()){var a=!1,b=function(){a||(a=!0,window.setTimeout(function(){var b=e.getSelectedEditingElement();null!=b&&(b=mxUtils.getCurrentStyle(b),null!=b&&null!=z.toolbar&&(z.toolbar.setFontName(Graph.stripQuotes(b.fontFamily)),z.toolbar.setFontSize(parseInt(b.fontSize))));a=!1},
-0))};mxEvent.addListener(e.cellEditor.textarea,"input",b);mxEvent.addListener(e.cellEditor.textarea,"touchend",b);mxEvent.addListener(e.cellEditor.textarea,"mouseup",b);mxEvent.addListener(e.cellEditor.textarea,"keyup",b);b()}};var K=e.cellEditor.stopEditing;e.cellEditor.stopEditing=function(a,b){try{K.apply(this,arguments),G()}catch(R){z.handleError(R)}};e.container.setAttribute("tabindex","0");e.container.style.cursor="default";if(window.self===window.top&&null!=e.container.parentNode)try{e.container.focus()}catch(N){}var L=
+0))};mxEvent.addListener(e.cellEditor.textarea,"input",b);mxEvent.addListener(e.cellEditor.textarea,"touchend",b);mxEvent.addListener(e.cellEditor.textarea,"mouseup",b);mxEvent.addListener(e.cellEditor.textarea,"keyup",b);b()}};var K=e.cellEditor.stopEditing;e.cellEditor.stopEditing=function(a,b){try{K.apply(this,arguments),G()}catch(R){z.handleError(R)}};e.container.setAttribute("tabindex","0");e.container.style.cursor="default";if(window.self===window.top&&null!=e.container.parentNode)try{e.container.focus()}catch(O){}var L=
e.fireMouseEvent;e.fireMouseEvent=function(a,b,c){a==mxEvent.MOUSE_DOWN&&this.container.focus();L.apply(this,arguments)};e.popupMenuHandler.autoExpand=!0;null!=this.menus&&(e.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(a,b,c){this.menus.createPopupMenu(a,b,c)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(a){e.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(a);this.getKeyHandler=function(){return keyHandler};e.connectionHandler.addListener(mxEvent.CONNECT,
-function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&(c.push(b.getProperty("terminal")),window.setTimeout(function(){null!=z.hoverIcons&&z.hoverIcons.update(e.view.getState(c[c.length-1]))},0));n(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,b){var c=b.getProperty("cells"),d=!1,k=!1;if(0<c.length)for(var l=0;l<c.length&&(d=e.getModel().isVertex(c[l])||d,!(k=e.getModel().isEdge(c[l])||k)||!d);l++);else k=d=!0;for(var c=b.getProperty("keys"),n=b.getProperty("values"),
-l=0;l<c.length;l++){var p=0<=mxUtils.indexOf(g,c[l]);if("strokeColor"!=c[l]||null!=n[l]&&"none"!=n[l])if(0<=mxUtils.indexOf(h,c[l]))k||0<=mxUtils.indexOf(m,c[l])?null==n[l]?delete e.currentEdgeStyle[c[l]]:e.currentEdgeStyle[c[l]]=n[l]:d&&0<=mxUtils.indexOf(f,c[l])&&(null==n[l]?delete e.currentVertexStyle[c[l]]:e.currentVertexStyle[c[l]]=n[l]);else if(0<=mxUtils.indexOf(f,c[l])){if(d||p)null==n[l]?delete e.currentVertexStyle[c[l]]:e.currentVertexStyle[c[l]]=n[l];if(k||p||0<=mxUtils.indexOf(m,c[l]))null==
-n[l]?delete e.currentEdgeStyle[c[l]]:e.currentEdgeStyle[c[l]]=n[l]}}null!=this.toolbar&&(this.toolbar.setFontName(e.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(e.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==e.currentEdgeStyle.edgeStyle&&"1"==e.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==e.currentEdgeStyle.edgeStyle||
+function(a,b){var c=[b.getProperty("cell")];b.getProperty("terminalInserted")&&(c.push(b.getProperty("terminal")),window.setTimeout(function(){null!=z.hoverIcons&&z.hoverIcons.update(e.view.getState(c[c.length-1]))},0));n(c)});this.addListener("styleChanged",mxUtils.bind(this,function(a,b){var c=b.getProperty("cells"),d=!1,k=!1;if(0<c.length)for(var m=0;m<c.length&&(d=e.getModel().isVertex(c[m])||d,!(k=e.getModel().isEdge(c[m])||k)||!d);m++);else k=d=!0;for(var c=b.getProperty("keys"),n=b.getProperty("values"),
+m=0;m<c.length;m++){var p=0<=mxUtils.indexOf(g,c[m]);if("strokeColor"!=c[m]||null!=n[m]&&"none"!=n[m])if(0<=mxUtils.indexOf(h,c[m]))k||0<=mxUtils.indexOf(l,c[m])?null==n[m]?delete e.currentEdgeStyle[c[m]]:e.currentEdgeStyle[c[m]]=n[m]:d&&0<=mxUtils.indexOf(f,c[m])&&(null==n[m]?delete e.currentVertexStyle[c[m]]:e.currentVertexStyle[c[m]]=n[m]);else if(0<=mxUtils.indexOf(f,c[m])){if(d||p)null==n[m]?delete e.currentVertexStyle[c[m]]:e.currentVertexStyle[c[m]]=n[m];if(k||p||0<=mxUtils.indexOf(l,c[m]))null==
+n[m]?delete e.currentEdgeStyle[c[m]]:e.currentEdgeStyle[c[m]]=n[m]}}null!=this.toolbar&&(this.toolbar.setFontName(e.currentVertexStyle.fontFamily||Menus.prototype.defaultFont),this.toolbar.setFontSize(e.currentVertexStyle.fontSize||Menus.prototype.defaultFontSize),null!=this.toolbar.edgeStyleMenu&&(this.toolbar.edgeStyleMenu.getElementsByTagName("div")[0].className="orthogonalEdgeStyle"==e.currentEdgeStyle.edgeStyle&&"1"==e.currentEdgeStyle.curved?"geSprite geSprite-curved":"straight"==e.currentEdgeStyle.edgeStyle||
"none"==e.currentEdgeStyle.edgeStyle||null==e.currentEdgeStyle.edgeStyle?"geSprite geSprite-straight":"entityRelationEdgeStyle"==e.currentEdgeStyle.edgeStyle?"geSprite geSprite-entity":"elbowEdgeStyle"==e.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==e.currentEdgeStyle.elbow?"verticalelbow":"horizontalelbow"):"isometricEdgeStyle"==e.currentEdgeStyle.edgeStyle?"geSprite geSprite-"+("vertical"==e.currentEdgeStyle.elbow?"verticalisometric":"horizontalisometric"):"geSprite geSprite-orthogonal"),
null!=this.toolbar.edgeShapeMenu&&(this.toolbar.edgeShapeMenu.getElementsByTagName("div")[0].className="link"==e.currentEdgeStyle.shape?"geSprite geSprite-linkedge":"flexArrow"==e.currentEdgeStyle.shape?"geSprite geSprite-arrow":"arrow"==e.currentEdgeStyle.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection"),null!=this.toolbar.lineStartMenu&&(this.toolbar.lineStartMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("start",e.currentEdgeStyle.shape,e.currentEdgeStyle[mxConstants.STYLE_STARTARROW],
mxUtils.getValue(e.currentEdgeStyle,"startFill","1"))),null!=this.toolbar.lineEndMenu&&(this.toolbar.lineEndMenu.getElementsByTagName("div")[0].className=this.getCssClassForMarker("end",e.currentEdgeStyle.shape,e.currentEdgeStyle[mxConstants.STYLE_ENDARROW],mxUtils.getValue(e.currentEdgeStyle,"endFill","1"))))}));null!=this.toolbar&&(a=mxUtils.bind(this,function(){var a=e.currentVertexStyle.fontFamily||"Helvetica",b=String(e.currentVertexStyle.fontSize||"12"),c=e.getView().getState(e.getSelectionCell());
@@ -2203,22 +2205,22 @@ EditorUi.prototype.init=function(){var a=this.editor.graph;if(!a.standalone){"0"
"keydown",mxUtils.bind(this,function(a){this.onKeyDown(a)}));mxEvent.addListener(a.container,"keypress",mxUtils.bind(this,function(a){this.onKeyPress(a)}));this.addUndoListener();this.addBeforeUnloadListener();a.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));a.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));var b=a.setDefaultParent,c=this;this.editor.graph.setDefaultParent=function(){b.apply(this,
arguments);c.updateActionStates()};a.editLink=c.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};EditorUi.prototype.clearSelectionState=function(){this.selectionState=null};EditorUi.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState};
EditorUi.prototype.createSelectionState=function(){for(var a=this.editor.graph,b=a.getSelectionCells(),c=this.initSelectionState(),e=!0,d=0;d<b.length;d++){var f=a.getCurrentCellStyle(b[d]);"0"!=mxUtils.getValue(f,mxConstants.STYLE_EDITABLE,"1")&&(this.updateSelectionStateForCell(c,b[d],b,e),e=!1)}this.updateSelectionStateForTableCells(c);return c};
-EditorUi.prototype.initSelectionState=function(){return{vertices:[],edges:[],cells:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,autoSize:!1,image:!0,shadow:!0,lineJumps:!0,resizable:!0,table:!1,cell:!1,row:!1,movable:!0,rotatable:!0,stroke:!0,unlocked:this.editor.graph.isEnabled(),connections:!1}};EditorUi.prototype.updateSelectionStateForTableCells=function(a){};
-EditorUi.prototype.updateSelectionStateForCell=function(a,b,c,e){c=this.editor.graph;a.cells.push(b);if(c.getModel().isVertex(b)){a.connections=0<c.model.getEdgeCount(b);a.unlocked=a.unlocked&&!c.isCellLocked(b);a.resizable=a.resizable&&c.isCellResizable(b);a.rotatable=a.rotatable&&c.isCellRotatable(b);a.movable=a.movable&&c.isCellMovable(b)&&!c.isTableRow(b)&&!c.isTableCell(b);a.table=a.table||c.isTable(b);a.cell=a.cell||c.isTableCell(b);a.row=a.row||c.isTableRow(b);a.vertices.push(b);var d=c.getCellGeometry(b);
-if(null!=d&&(0<d.width?null==a.width?a.width=d.width:a.width!=d.width&&(a.width=""):a.containsLabel=!0,0<d.height?null==a.height?a.height=d.height:a.height!=d.height&&(a.height=""):a.containsLabel=!0,!d.relative||null!=d.offset)){var f=d.relative?d.offset.x:d.x,d=d.relative?d.offset.y:d.y;null==a.x?a.x=f:a.x!=f&&(a.x="");null==a.y?a.y=d:a.y!=d&&(a.y="")}}else c.getModel().isEdge(b)&&(a.edges.push(b),a.connections=!0,a.resizable=!1,a.rotatable=!1,a.movable=!1);b=c.view.getState(b);null!=b&&(a.autoSize=
-a.autoSize||c.isAutoSizeState(b),a.glass=a.glass&&c.isGlassState(b),a.rounded=a.rounded&&c.isRoundedState(b),a.lineJumps=a.lineJumps&&c.isLineJumpState(b),a.image=a.image&&c.isImageState(b),a.shadow=a.shadow&&c.isShadowState(b),a.fill=a.fill&&c.isFillState(b),a.stroke=a.stroke&&c.isStrokeState(b),f=mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null),a.containsImage=a.containsImage||"image"==f,c.mergeStyle(b.style,a.style,e))};
+EditorUi.prototype.initSelectionState=function(){return{vertices:[],edges:[],cells:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,autoSize:!1,image:!0,shadow:!0,lineJumps:!0,resizable:!0,table:!1,cell:!1,row:!1,movable:!0,rotatable:!0,stroke:!0,swimlane:!1,unlocked:this.editor.graph.isEnabled(),connections:!1}};EditorUi.prototype.updateSelectionStateForTableCells=function(a){};
+EditorUi.prototype.updateSelectionStateForCell=function(a,b,c,e){c=this.editor.graph;a.cells.push(b);if(c.getModel().isVertex(b)){a.connections=0<c.model.getEdgeCount(b);a.unlocked=a.unlocked&&!c.isCellLocked(b);a.resizable=a.resizable&&c.isCellResizable(b);a.rotatable=a.rotatable&&c.isCellRotatable(b);a.movable=a.movable&&c.isCellMovable(b)&&!c.isTableRow(b)&&!c.isTableCell(b);a.swimlane=a.swimlane||c.isSwimlane(b);a.table=a.table||c.isTable(b);a.cell=a.cell||c.isTableCell(b);a.row=a.row||c.isTableRow(b);
+a.vertices.push(b);var d=c.getCellGeometry(b);if(null!=d&&(0<d.width?null==a.width?a.width=d.width:a.width!=d.width&&(a.width=""):a.containsLabel=!0,0<d.height?null==a.height?a.height=d.height:a.height!=d.height&&(a.height=""):a.containsLabel=!0,!d.relative||null!=d.offset)){var f=d.relative?d.offset.x:d.x,d=d.relative?d.offset.y:d.y;null==a.x?a.x=f:a.x!=f&&(a.x="");null==a.y?a.y=d:a.y!=d&&(a.y="")}}else c.getModel().isEdge(b)&&(a.edges.push(b),a.connections=!0,a.resizable=!1,a.rotatable=!1,a.movable=
+!1);b=c.view.getState(b);null!=b&&(a.autoSize=a.autoSize||c.isAutoSizeState(b),a.glass=a.glass&&c.isGlassState(b),a.rounded=a.rounded&&c.isRoundedState(b),a.lineJumps=a.lineJumps&&c.isLineJumpState(b),a.image=a.image&&c.isImageState(b),a.shadow=a.shadow&&c.isShadowState(b),a.fill=a.fill&&c.isFillState(b),a.stroke=a.stroke&&c.isStrokeState(b),f=mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null),a.containsImage=a.containsImage||"image"==f,c.mergeStyle(b.style,a.style,e))};
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()}));var c=mxUtils.bind(this,function(){b.hideShapePicker(!0)});a.addListener("wheel",c);a.addListener(mxEvent.ESCAPE,c);a.view.addListener(mxEvent.SCALE,c);a.view.addListener(mxEvent.SCALE_AND_TRANSLATE,c);a.getSelectionModel().addListener(mxEvent.CHANGE,c);a.getModel().addListener(mxEvent.CHANGE,
c);var e=a.popupMenuHandler.isMenuShowing;a.popupMenuHandler.isMenuShowing=function(){return e.apply(this,arguments)||null!=b.shapePicker};var d=a.dblClick;a.dblClick=function(c,e){if(this.isEnabled())if(null!=e||null==b.sidebar||mxEvent.isShiftDown(c)||a.isCellLocked(a.getDefaultParent()))d.apply(this,arguments);else{var f=mxUtils.convertPoint(this.container,mxEvent.getClientX(c),mxEvent.getClientY(c));mxEvent.consume(c);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(f.x,f.y)}),
30)}};if(null!=this.hoverIcons){this.hoverIcons.addListener("reset",c);var f=this.hoverIcons.drag;this.hoverIcons.drag=function(){b.hideShapePicker();f.apply(this,arguments)};var h=this.hoverIcons.execute;this.hoverIcons.execute=function(c,d,e){var f=e.getEvent();this.graph.isCloneEvent(f)||mxEvent.isShiftDown(f)?h.apply(this,arguments):this.graph.connectVertex(c.cell,d,this.graph.defaultEdgeLength,f,null,null,mxUtils.bind(this,function(f,g,h){var k=a.getCompositeParent(c.cell);f=a.getCellGeometry(k);
for(e.consume();null!=k&&a.model.isVertex(k)&&null!=f&&f.relative;)cell=k,k=a.model.getParent(cell),f=a.getCellGeometry(k);window.setTimeout(mxUtils.bind(this,function(){b.showShapePicker(e.getGraphX(),e.getGraphY(),k,mxUtils.bind(this,function(c){h(c);null!=b.hoverIcons&&b.hoverIcons.update(a.view.getState(c))}),d)}),30)}),mxUtils.bind(this,function(a){this.graph.selectCellsForConnectVertex(a,f,this)}))};var k=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(c,d){null!=k&&window.clearTimeout(k);
-k=window.setTimeout(mxUtils.bind(this,function(){var c=d.getProperty("arrow"),e=d.getProperty("direction"),f=d.getProperty("event"),c=c.getBoundingClientRect(),g=mxUtils.getOffset(a.container),h=a.container.scrollLeft+c.x-g.x,g=a.container.scrollTop+c.y-g.y,k=a.getCompositeParent(null!=this.hoverIcons.currentState?this.hoverIcons.currentState.cell:null),m=b.showShapePicker(h,g,k,mxUtils.bind(this,function(c){null!=c&&a.connectVertex(k,e,a.defaultEdgeLength,f,!0,!0,function(d,e,f){f(c);null!=b.hoverIcons&&
-b.hoverIcons.update(a.view.getState(c))},function(b){a.selectCellsForConnectVertex(b)},f,this.hoverIcons)}),e,!0);this.centerShapePicker(m,c,h,g,e);mxUtils.setOpacity(m,30);mxEvent.addListener(m,"mouseenter",function(){mxUtils.setOpacity(m,100)});mxEvent.addListener(m,"mouseleave",function(){b.hideShapePicker()})}),Editor.shapePickerHoverDelay)}));this.hoverIcons.addListener("blur",mxUtils.bind(this,function(a,b){null!=k&&window.clearTimeout(k)}))}};
+k=window.setTimeout(mxUtils.bind(this,function(){var c=d.getProperty("arrow"),e=d.getProperty("direction"),f=d.getProperty("event"),c=c.getBoundingClientRect(),g=mxUtils.getOffset(a.container),h=a.container.scrollLeft+c.x-g.x,g=a.container.scrollTop+c.y-g.y,k=a.getCompositeParent(null!=this.hoverIcons.currentState?this.hoverIcons.currentState.cell:null),l=b.showShapePicker(h,g,k,mxUtils.bind(this,function(c){null!=c&&a.connectVertex(k,e,a.defaultEdgeLength,f,!0,!0,function(d,e,f){f(c);null!=b.hoverIcons&&
+b.hoverIcons.update(a.view.getState(c))},function(b){a.selectCellsForConnectVertex(b)},f,this.hoverIcons)}),e,!0);this.centerShapePicker(l,c,h,g,e);mxUtils.setOpacity(l,30);mxEvent.addListener(l,"mouseenter",function(){mxUtils.setOpacity(l,100)});mxEvent.addListener(l,"mouseleave",function(){b.hideShapePicker()})}),Editor.shapePickerHoverDelay)}));this.hoverIcons.addListener("blur",mxUtils.bind(this,function(a,b){null!=k&&window.clearTimeout(k)}))}};
EditorUi.prototype.centerShapePicker=function(a,b,c,e,d){if(d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST)a.style.width="40px";var f=a.getBoundingClientRect();d==mxConstants.DIRECTION_NORTH?(c-=f.width/2-10,e-=f.height+6):d==mxConstants.DIRECTION_SOUTH?(c-=f.width/2-10,e+=b.height+6):d==mxConstants.DIRECTION_WEST?(c-=f.width+6,e-=f.height/2-10):d==mxConstants.DIRECTION_EAST&&(c+=b.width+6,e-=f.height/2-10);a.style.left=c+"px";a.style.top=e+"px"};
EditorUi.prototype.showShapePicker=function(a,b,c,e,d,f){a=this.createShapePicker(a,b,c,e,d,mxUtils.bind(this,function(){this.hideShapePicker()}),this.getCellsForShapePicker(c,f),f);null!=a&&(null==this.hoverIcons||f||this.hoverIcons.reset(),f=this.editor.graph,f.popupMenuHandler.hideMenu(),f.tooltipHandler.hideTooltip(),this.hideCurrentMenu(),this.hideShapePicker(),this.shapePickerCallback=e,this.shapePicker=a);return a};
-EditorUi.prototype.createShapePicker=function(a,b,c,e,d,f,h,k){var g=null;if(null!=h&&0<h.length){var m=this,l=this.editor.graph,g=document.createElement("div");d=l.view.getState(c);var n=null==c||null!=d&&l.isTransparentState(d)?null:l.copyStyle(c);c=6>h.length?35*h.length:140;g.className="geToolbarContainer geSidebarContainer";g.style.cssText="position:absolute;left:"+a+"px;top:"+b+"px;width:"+c+"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+";";k||mxUtils.setPrefixedStyle(g.style,"transform","translate(-22px,-22px)");null!=l.background&&l.background!=mxConstants.NONE&&(g.style.backgroundColor=l.background);l.container.appendChild(g);c=mxUtils.bind(this,function(c){var d=document.createElement("a");d.className="geItem";d.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";g.appendChild(d);null!=n&&"1"!=urlParams.sketch?
-this.sidebar.graph.pasteStyle(n,[c]):m.insertHandler([c],""!=c.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([c],25,25,d,null,!0,!1,c.geometry.width,c.geometry.height);mxEvent.addListener(d,"click",function(){var d=l.cloneCell(c);if(null!=e)e(d);else{d.geometry.x=l.snap(Math.round(a/l.view.scale)-l.view.translate.x-c.geometry.width/2);d.geometry.y=l.snap(Math.round(b/l.view.scale)-l.view.translate.y-c.geometry.height/2);l.model.beginUpdate();try{l.addCell(d)}finally{l.model.endUpdate()}l.setSelectionCell(d);
-l.scrollCellToVisible(d);l.startEditingAtCell(d);null!=m.hoverIcons&&m.hoverIcons.update(l.view.getState(d))}null!=f&&f()})});for(d=0;d<(k?Math.min(h.length,4):h.length);d++)c(h[d]);h=g.offsetTop+g.clientHeight-(l.container.scrollTop+l.container.offsetHeight);0<h&&(g.style.top=Math.max(l.container.scrollTop+22,b-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.createShapePicker=function(a,b,c,e,d,f,h,k){var g=null;if(null!=h&&0<h.length){var l=this,m=this.editor.graph,g=document.createElement("div");d=m.view.getState(c);var n=null==c||null!=d&&m.isTransparentState(d)?null:m.copyStyle(c);c=6>h.length?35*h.length:140;g.className="geToolbarContainer geSidebarContainer";g.style.cssText="position:absolute;left:"+a+"px;top:"+b+"px;width:"+c+"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+";";k||mxUtils.setPrefixedStyle(g.style,"transform","translate(-22px,-22px)");null!=m.background&&m.background!=mxConstants.NONE&&(g.style.backgroundColor=m.background);m.container.appendChild(g);c=mxUtils.bind(this,function(c){var d=document.createElement("a");d.className="geItem";d.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:3px 0 0 3px;";g.appendChild(d);null!=n&&"1"!=urlParams.sketch?
+this.sidebar.graph.pasteStyle(n,[c]):l.insertHandler([c],""!=c.value&&"1"!=urlParams.sketch,this.sidebar.graph.model);this.sidebar.createThumb([c],25,25,d,null,!0,!1,c.geometry.width,c.geometry.height);mxEvent.addListener(d,"click",function(){var d=m.cloneCell(c);if(null!=e)e(d);else{d.geometry.x=m.snap(Math.round(a/m.view.scale)-m.view.translate.x-c.geometry.width/2);d.geometry.y=m.snap(Math.round(b/m.view.scale)-m.view.translate.y-c.geometry.height/2);m.model.beginUpdate();try{m.addCell(d)}finally{m.model.endUpdate()}m.setSelectionCell(d);
+m.scrollCellToVisible(d);m.startEditingAtCell(d);null!=l.hoverIcons&&l.hoverIcons.update(m.view.getState(d))}null!=f&&f()})});for(d=0;d<(k?Math.min(h.length,4):h.length);d++)c(h[d]);h=g.offsetTop+g.clientHeight-(m.container.scrollTop+m.container.offsetHeight);0<h&&(g.style.top=Math.max(m.container.scrollTop+22,b-h)+"px");h=g.offsetLeft+g.clientWidth-(m.container.scrollLeft+m.container.offsetWidth);0<h&&(g.style.left=Math.max(m.container.scrollLeft+22,a-h)+"px")}return g};
EditorUi.prototype.getCellsForShapePicker=function(a,b){var c=mxUtils.bind(this,function(a,b,c,h){return this.editor.graph.createVertex(null,null,h||"",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;fillColor=none;",40,20,"Text"),c("whiteSpace=wrap;html=1;"),c("ellipse;whiteSpace=wrap;html=1;"),c("rhombus;whiteSpace=wrap;html=1;",80,80),c("rounded=1;whiteSpace=wrap;html=1;"),
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;",120,80),c("shape=singleArrow;whiteSpace=wrap;html=1;arrowWidth=0.4;arrowSize=0.4;",80,60),c("shape=waypoint;sketch=0;size=6;pointerEvents=1;points=[];fillColor=none;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;",40,40)]};
@@ -2232,21 +2234,21 @@ EditorUi.prototype.getCssClassForMarker=function(a,b,c,e){return"flexArrow"==b?n
c==mxConstants.ARROW_DIAMOND_THIN?"1"==e?"geSprite geSprite-"+a+"thindiamond":"geSprite geSprite-"+a+"thindiamondtrans":"openAsync"==c?"geSprite geSprite-"+a+"openasync":"dash"==c?"geSprite geSprite-"+a+"dash":"cross"==c?"geSprite geSprite-"+a+"cross":"async"==c?"1"==e?"geSprite geSprite-"+a+"async":"geSprite geSprite-"+a+"asynctrans":"circle"==c||"circlePlus"==c?"1"==e||"circle"==c?"geSprite geSprite-"+a+"circle":"geSprite geSprite-"+a+"circleplus":"ERone"==c?"geSprite geSprite-"+a+"erone":"ERmandOne"==
c?"geSprite geSprite-"+a+"eronetoone":"ERmany"==c?"geSprite geSprite-"+a+"ermany":"ERoneToMany"==c?"geSprite geSprite-"+a+"eronetomany":"ERzeroToOne"==c?"geSprite geSprite-"+a+"eroneopt":"ERzeroToMany"==c?"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"),c=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()));c.setEnabled(b.isEnabled())};
-EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(c){c.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.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),l=new mxGraphModel,n=l.getChildAt(l.getRoot(),
-0),p=0;p<f.length;p++){l.add(n,f[p]);var r=b.view.getState(c[p]);if(null!=r){var u=b.getCellGeometry(f[p]);null!=u&&u.relative&&!l.isEdge(c[p])&&null==e[mxObjectIdentity.get(l.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 c=mxClipboard.paste;mxClipboard.paste=function(b){var d=
+EditorUi.prototype.initClipboard=function(){var a=this,b=mxClipboard.cut;mxClipboard.cut=function(c){c.cellEditor.isContentEditing()?document.execCommand("cut",!1,null):b.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 c=mxClipboard.paste;mxClipboard.paste=function(b){var d=
null;b.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):d=c.apply(this,arguments);a.updatePasteActionStates();return d};var e=this.editor.graph.cellEditor.startEditing;this.editor.graph.cellEditor.startEditing=function(){e.apply(this,arguments);a.updatePasteActionStates()};var d=this.editor.graph.cellEditor.stopEditing;this.editor.graph.cellEditor.stopEditing=function(b,c){d.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 b=null,c=this;if(this.editor.isChromelessView()){this.chromelessResize=b=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),h=a.view.translate,k=a.view.scale,l=mxRectangle.fromRectangle(f);
-l.x=l.x/k-h.x;l.y=l.y/k-h.y;l.width/=k;l.height/=k;var h=a.container.scrollTop,m=a.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var p=a.container.offsetWidth-n,n=a.container.offsetHeight-n;b=b?Math.max(.3,Math.min(c||1,p/l.width)):k;c=(p-b*l.width)/2/b;var r=0==this.lightboxVerticalDivider?0:(n-b*l.height)/this.lightboxVerticalDivider/b;g&&(c=Math.max(c,0),r=Math.max(r,0));if(g||f.width<p||f.height<n)a.view.scaleAndTranslate(b,Math.floor(c-
-l.x),Math.floor(r-l.y)),a.container.scrollTop=h*b/k,a.container.scrollLeft=m*b/k;else if(0!=d||0!=e)f=a.view.translate,a.view.setTranslate(Math.floor(f.x+d/k),Math.floor(f.y+e/k))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var e=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",e);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",e)});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 b=null,c=this;if(this.editor.isChromelessView()){this.chromelessResize=b=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),h=a.view.translate,k=a.view.scale,m=mxRectangle.fromRectangle(f);
+m.x=m.x/k-h.x;m.y=m.y/k-h.y;m.width/=k;m.height/=k;var h=a.container.scrollTop,l=a.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var p=a.container.offsetWidth-n,n=a.container.offsetHeight-n;b=b?Math.max(.3,Math.min(c||1,p/m.width)):k;c=(p-b*m.width)/2/b;var r=0==this.lightboxVerticalDivider?0:(n-b*m.height)/this.lightboxVerticalDivider/b;g&&(c=Math.max(c,0),r=Math.max(r,0));if(g||f.width<p||f.height<n)a.view.scaleAndTranslate(b,Math.floor(c-
+m.x),Math.floor(r-m.y)),a.container.scrollTop=h*b/k,a.container.scrollLeft=l*b/k;else if(0!=d||0!=e)f=a.view.translate,a.view.setTranslate(Math.floor(f.x+d/k),Math.floor(f.y+e/k))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var e=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",e);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",e)});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 d=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.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=a.isViewer()?"0":"50%";mxClient.IS_IE||mxClient.IS_IE11?(this.chromelessToolbar.style.backgroundColor="#ffffff",this.chromelessToolbar.style.border="3px solid black"):this.chromelessToolbar.style.backgroundColor="#000000";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","16px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,
"transition","opacity 600ms ease-in-out");var f=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",f);f();var h=0,f=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);a.style.width="36px";a.style.filter="invert(100%)";d.appendChild(a);this.chromelessToolbar.appendChild(d);return d});null!=d.backBtn&&f(mxUtils.bind(this,function(a){window.location.href=d.backBtn.url;mxEvent.consume(a)}),Editor.backImage,mxResources.get("back",null,"Back"));if(this.isPagesEnabled()){var k=f(mxUtils.bind(this,
-function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousImage,mxResources.get("previousPage")),g=document.createElement("div");g.style.fontFamily=Editor.defaultHtmlFont;g.style.display="inline-block";g.style.verticalAlign="top";g.style.fontWeight="bold";g.style.marginTop="8px";g.style.fontSize="14px";g.style.color=mxClient.IS_IE||mxClient.IS_IE11?"#000000":"#ffffff";this.chromelessToolbar.appendChild(g);var m=f(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();
-mxEvent.consume(a)}),Editor.nextImage,mxResources.get("nextPage")),l=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(g.innerHTML="",mxUtils.write(g,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});k.style.paddingLeft="0px";k.style.paddingRight="4px";m.style.paddingLeft="4px";m.style.paddingRight="0px";var n=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage?(m.style.display="",k.style.display=
-"",g.style.display="inline-block"):(m.style.display="none",k.style.display="none",g.style.display="none");l()});this.editor.addListener("resetGraphView",n);this.editor.addListener("pageSelected",l)}f(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");f(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");
+function(a){this.actions.get("previousPage").funct();mxEvent.consume(a)}),Editor.previousImage,mxResources.get("previousPage")),g=document.createElement("div");g.style.fontFamily=Editor.defaultHtmlFont;g.style.display="inline-block";g.style.verticalAlign="top";g.style.fontWeight="bold";g.style.marginTop="8px";g.style.fontSize="14px";g.style.color=mxClient.IS_IE||mxClient.IS_IE11?"#000000":"#ffffff";this.chromelessToolbar.appendChild(g);var l=f(mxUtils.bind(this,function(a){this.actions.get("nextPage").funct();
+mxEvent.consume(a)}),Editor.nextImage,mxResources.get("nextPage")),m=mxUtils.bind(this,function(){null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&(g.innerHTML="",mxUtils.write(g,mxUtils.indexOf(this.pages,this.currentPage)+1+" / "+this.pages.length))});k.style.paddingLeft="0px";k.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="",k.style.display=
+"",g.style.display="inline-block"):(l.style.display="none",k.style.display="none",g.style.display="none");m()});this.editor.addListener("resetGraphView",n);this.editor.addListener("pageSelected",m)}f(mxUtils.bind(this,function(a){this.actions.get("zoomOut").funct();mxEvent.consume(a)}),Editor.zoomOutImage,mxResources.get("zoomOut")+" (Alt+Mousewheel)");f(mxUtils.bind(this,function(a){this.actions.get("zoomIn").funct();mxEvent.consume(a)}),Editor.zoomInImage,mxResources.get("zoomIn")+" (Alt+Mousewheel)");
f(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.zoomFitImage,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=f(mxUtils.bind(this,function(b){if(null!=this.layersDialog)this.layersDialog.parentNode.removeChild(this.layersDialog),this.layersDialog=null;else{this.layersDialog=a.createLayersDialog(null,!0);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=Editor.defaultHtmlFont;this.layersDialog.style.width="160px";this.layersDialog.style.padding="4px 2px 4px 2px";this.layersDialog.style.left=c.left+"px";this.layersDialog.style.bottom=parseInt(this.chromelessToolbar.style.bottom)+
@@ -2259,11 +2261,11 @@ mxUtils.bind(this,function(b){a.tooltipHandler.resetTimer();a.tooltipHandler.hid
c.getGraphX();this.startY=c.getGraphY();this.scrollLeft=a.container.scrollLeft;this.scrollTop=a.container.scrollTop},mouseMove:function(a,b){},mouseUp:function(b,d){mxEvent.isTouchEvent(d.getEvent())&&Math.abs(this.scrollLeft-a.container.scrollLeft)<y&&Math.abs(this.scrollTop-a.container.scrollTop)<y&&Math.abs(this.startX-d.getGraphX())<y&&Math.abs(this.startY-d.getGraphY())<y&&(0<parseFloat(c.chromelessToolbar.style.opacity||0)?u():v(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var E=
a.view.validate;a.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var a=this.graph.getPagePadding(),b=this.graph.getPageSize();this.translate.x=a.x-(this.x0||0)*b.width;this.translate.y=a.y-(this.y0||0)*b.height}E.apply(this,arguments)};if(!a.isViewer()){var I=a.sizeDidChange;a.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var b=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?I.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 B=a.view.getBackgroundPane(),G=a.view.getDrawPane();a.cumulativeZoomFactor=1;var z=null,F=null,K=null,L=null,N=null,J=function(d){null!=z&&window.clearTimeout(z);window.setTimeout(function(){if(!a.isMouseDown||L)z=window.setTimeout(mxUtils.bind(this,function(){a.isFastZoomEnabled()&&(null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(a.view.backgroundPageShape.node.style,
+d)*a.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var B=a.view.getBackgroundPane(),G=a.view.getDrawPane();a.cumulativeZoomFactor=1;var z=null,F=null,K=null,L=null,O=null,J=function(d){null!=z&&window.clearTimeout(z);window.setTimeout(function(){if(!a.isMouseDown||L)z=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)),G.style.transformOrigin="",B.style.transformOrigin="",mxClient.IS_SF?(G.style.transform="scale(1)",B.style.transform="scale(1)",window.setTimeout(function(){G.style.transform="";B.style.transform=""},0)):(G.style.transform="",B.style.transform=""),a.view.getDecoratorPane().style.opacity="",a.view.getOverlayPane().style.opacity="");var d=new mxPoint(a.container.scrollLeft,a.container.scrollTop),
-e=mxUtils.getOffset(a.container),f=a.view.scale,g=0,h=0;null!=F&&(g=a.container.offsetWidth/2-F.x+e.x,h=a.container.offsetHeight/2-F.y+e.y);a.zoom(a.cumulativeZoomFactor,null,20);a.view.scale!=f&&(null!=K&&(g+=d.x-K.x,h+=d.y-K.y),null!=b&&c.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!=N&&G.setAttribute("filter",
-N);a.cumulativeZoomFactor=1;N=L=F=K=z=null}),null!=d?d:a.isFastZoomEnabled()?c.wheelZoomDelay:c.lazyZoomDelay)},0)};a.lazyZoom=function(b,d,e,f){f=null!=f?f:this.zoomFactor;(d=d||!a.scrollbars)&&(F=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=f,this.cumulativeZoomFactor=Math.round(this.view.scale*
-this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=f,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;a.isFastZoomEnabled()&&(null==N&&""!=G.getAttribute("filter")&&(N=G.getAttribute("filter"),
+e=mxUtils.getOffset(a.container),f=a.view.scale,g=0,h=0;null!=F&&(g=a.container.offsetWidth/2-F.x+e.x,h=a.container.offsetHeight/2-F.y+e.y);a.zoom(a.cumulativeZoomFactor,null,20);a.view.scale!=f&&(null!=K&&(g+=d.x-K.x,h+=d.y-K.y),null!=b&&c.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!=O&&G.setAttribute("filter",
+O);a.cumulativeZoomFactor=1;O=L=F=K=z=null}),null!=d?d:a.isFastZoomEnabled()?c.wheelZoomDelay:c.lazyZoomDelay)},0)};a.lazyZoom=function(b,d,e,f){f=null!=f?f:this.zoomFactor;(d=d||!a.scrollbars)&&(F=new mxPoint(a.container.offsetLeft+a.container.clientWidth/2,a.container.offsetTop+a.container.clientHeight/2));b?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=f,this.cumulativeZoomFactor=Math.round(this.view.scale*
+this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=f,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;a.isFastZoomEnabled()&&(null==O&&""!=G.getAttribute("filter")&&(O=G.getAttribute("filter"),
G.removeAttribute("filter")),K=new mxPoint(a.container.scrollLeft,a.container.scrollTop),b=d||null==F?a.container.scrollLeft+a.container.clientWidth/2:F.x+a.container.scrollLeft-a.container.offsetLeft,f=d||null==F?a.container.scrollTop+a.container.clientHeight/2:F.y+a.container.scrollTop-a.container.offsetTop,G.style.transformOrigin=b+"px "+f+"px",G.style.transform="scale("+this.cumulativeZoomFactor+")",B.style.transformOrigin=b+"px "+f+"px",B.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",(d||null==F?a.container.clientWidth/2+a.container.scrollLeft-b.offsetLeft+"px":F.x+a.container.scrollLeft-b.offsetLeft-a.container.offsetLeft+"px")+" "+(d||null==F?a.container.clientHeight/2+a.container.scrollTop-b.offsetTop+"px":F.y+a.container.scrollTop-b.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(b.style,"transform",
"scale("+this.cumulativeZoomFactor+")")),a.view.getDecoratorPane().style.opacity="0",a.view.getOverlayPane().style.opacity="0",null!=c.hoverIcons&&c.hoverIcons.reset());J(e)};mxEvent.addGestureListeners(a.container,function(a){null!=z&&window.clearTimeout(z)},null,function(b){1!=a.cumulativeZoomFactor&&J(0)});mxEvent.addListener(a.container,"scroll",function(b){null==z||a.isMouseDown||1==a.cumulativeZoomFactor||J(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(b,c,d,e,f){a.fireEvent(new mxEventObject("wheel"));
@@ -2313,10 +2315,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,c,e){function d(a){if(null!=h){var d=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));e(Math.max(0,k+(b?d.x-h.x:h.y-d.y)-c));mxEvent.consume(a);k!=l()&&(g=!0,m=null)}}function f(a){d(a);h=k=null}var h=null,k=null,g=!0,m=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var l=mxUtils.bind(this,function(){var d=parseInt(b?a.style.left:a.style.bottom);b||(d=d+c-this.footerHeight);return d});mxEvent.addGestureListeners(a,function(a){h=new mxPoint(mxEvent.getClientX(a),
-mxEvent.getClientY(a));k=l();g=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!g&&this.hsplitClickEnabled){var b=null!=m?m-c:0;m=l();e(b);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,d,f);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,d,f)})};
+EditorUi.prototype.addSplitHandler=function(a,b,c,e){function d(a){if(null!=h){var d=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a));e(Math.max(0,k+(b?d.x-h.x:h.y-d.y)-c));mxEvent.consume(a);k!=m()&&(g=!0,l=null)}}function f(a){d(a);h=k=null}var h=null,k=null,g=!0,l=null;mxClient.IS_POINTER&&(a.style.touchAction="none");var m=mxUtils.bind(this,function(){var d=parseInt(b?a.style.left:a.style.bottom);b||(d=d+c-this.footerHeight);return d});mxEvent.addGestureListeners(a,function(a){h=new mxPoint(mxEvent.getClientX(a),
+mxEvent.getClientY(a));k=m();g=!1;mxEvent.consume(a)});mxEvent.addListener(a,"click",mxUtils.bind(this,function(a){if(!g&&this.hsplitClickEnabled){var b=null!=l?l-c:0;l=m();e(b);mxEvent.consume(a)}}));mxEvent.addGestureListeners(document,null,d,f);this.destroyFunctions.push(function(){mxEvent.removeGestureListeners(document,null,d,f)})};
EditorUi.prototype.handleError=function(a,b,c,e,d){a=null!=a&&null!=a.error?a.error:a;if(null!=a||null!=b){d=mxUtils.htmlEntities(mxResources.get("unknownError"));var f=mxResources.get("ok");b=null!=b?b:mxResources.get("error");null!=a&&null!=a.message&&(d=mxUtils.htmlEntities(a.message));this.showError(b,d,f,c,null,null,null,null,null,null,null,null,e?c:null)}else null!=c&&c()};
-EditorUi.prototype.showError=function(a,b,c,e,d,f,h,k,g,m,l,n,p){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),e,d,f,h,n,k,g);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,m||340,l||100+20*b,!0,!1,p);a.init()};EditorUi.prototype.showDialog=function(a,b,c,e,d,f,h,k,g,m){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,c,e,d,f,h,k,g,m);this.dialogs.push(this.dialog)};
+EditorUi.prototype.showError=function(a,b,c,e,d,f,h,k,g,l,m,n,p){a=new ErrorDialog(this,a,b,c||mxResources.get("ok"),e,d,f,h,n,k,g);b=Math.ceil(null!=b?b.length/50:1);this.showDialog(a.container,l||340,m||100+20*b,!0,!1,p);a.init()};EditorUi.prototype.showDialog=function(a,b,c,e,d,f,h,k,g,l){this.editor.graph.tooltipHandler.resetTimer();this.editor.graph.tooltipHandler.hideTooltip();null==this.dialogs&&(this.dialogs=[]);this.dialog=new Dialog(this,a,b,c,e,d,f,h,k,g,l);this.dialogs.push(this.dialog)};
EditorUi.prototype.hideDialog=function(a,b,c){null!=this.dialogs&&0<this.dialogs.length&&(null==c||c==this.dialog.container.firstChild)&&(c=this.dialogs.pop(),0==c.close(a,b)?this.dialogs.push(c):(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(),c=new mxDictionary,e=[],d=0;d<b.length;d++){var f=a.isTableCell(b[d])?a.model.getParent(b[d]):b[d];null==f||c.get(f)||(c.put(f,!0),e.push(f))}a.setSelectionCells(a.duplicateCells(e,!1))}catch(h){this.handleError(h)}};
EditorUi.prototype.pickColor=function(a,b){var c=this.editor.graph,e=c.cellEditor.saveSelection(),d=230+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12)),f=new ColorDialog(this,mxUtils.rgba2hex(a)||"none",function(a){c.cellEditor.restoreSelection(e);b(a)},function(){c.cellEditor.restoreSelection(e)});this.showDialog(f.container,230,d,!0,!1);f.init()};
@@ -2324,7 +2326,7 @@ EditorUi.prototype.openFile=function(){window.openFile=new OpenFile(mxUtils.bind
EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var c=a.indexOf("&lt;mxGraphModel ");if(0<=c){var e=a.lastIndexOf("&lt;/mxGraphModel&gt;");e>c&&(b=a.substring(c,e+21).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}}catch(d){}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 c=decodeURIComponent(b);this.isCompatibleString(c)&&(b=c)}a(b)}),"text")}),"html")};
EditorUi.prototype.readGraphModelFromClipboardWithType=function(a,b){navigator.clipboard.read().then(mxUtils.bind(this,function(c){if(null!=c&&0<c.length&&"html"==b&&0<=mxUtils.indexOf(c[0].types,"text/html"))c[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 e=d.lastIndexOf("%3E");
-0<=e&&e<d.length-3&&(d=d.substring(0,e+3))}catch(l){}try{var g=c.getElementsByTagName("span"),m=null!=g&&0<g.length?mxUtils.trim(decodeURIComponent(g[0].textContent)):decodeURIComponent(d);this.isCompatibleString(m)&&(d=m)}catch(l){}}catch(l){}a(this.isCompatibleString(d)?d:null)}))["catch"](function(b){a(null)})}))["catch"](function(b){a(null)});else if(null!=c&&0<c.length&&"text"==b&&0<=mxUtils.indexOf(c[0].types,"text/plain"))c[0].getType("text/plain").then(function(b){b.text().then(function(b){a(b)})["catch"](function(){a(null)})})["catch"](function(){a(null)});
+0<=e&&e<d.length-3&&(d=d.substring(0,e+3))}catch(m){}try{var g=c.getElementsByTagName("span"),l=null!=g&&0<g.length?mxUtils.trim(decodeURIComponent(g[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!=c&&0<c.length&&"text"==b&&0<=mxUtils.indexOf(c[0].types,"text/plain"))c[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 c="<meta "==a.substring(0,6),b=document.createElement("div");b.innerHTML=(c?'<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));c=c&&null!=b.firstChild?b.firstChild.nextSibling:b.firstChild;null!=c&&null==c.nextSibling&&c.nodeType==mxConstants.NODETYPE_ELEMENT&&"IMG"==c.nodeName?(a=c.getAttribute("src"),
@@ -2345,8 +2347,8 @@ d=-b:38==a?f=-b:39==a?d=b:40==a&&(f=b),k.currentDx+=d*g,k.currentDy+=f*g,k.check
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)&&f.apply(this,arguments)};d.isEnabledForEvent=function(a){return!mxEvent.isConsumed(a)&&this.isGraphEvent(a)&&this.isEnabled()&&(null==c.dialogs||0==c.dialogs.length)};d.isControlDown=function(a){return mxEvent.isControlDown(a)||mxClient.IS_MAC&&a.metaKey};var h=null,k={37:mxConstants.DIRECTION_WEST,
38:mxConstants.DIRECTION_NORTH,39:mxConstants.DIRECTION_EAST,40:mxConstants.DIRECTION_SOUTH},g=d.getFunction;mxKeyHandler.prototype.getFunction=function(a){if(e.isEnabled()){if(mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){var d=c.actions.get(c.altShiftActions[a.keyCode]);if(null!=d)return d.funct}if(null!=k[a.keyCode]&&!e.isSelectionEmpty())if(!this.isControlDown(a)&&mxEvent.isShiftDown(a)&&mxEvent.isAltDown(a)){if(e.model.isVertex(e.getSelectionCell()))return function(){var b=e.connectVertex(e.getSelectionCell(),
k[a.keyCode],e.defaultEdgeLength,a,!0);null!=b&&0<b.length&&(1==b.length&&e.model.isEdge(b[0])?e.setSelectionCell(e.model.getTerminal(b[0],!1)):e.setSelectionCell(b[b.length-1]),e.scrollCellToVisible(e.getSelectionCell()),null!=c.hoverIcons&&c.hoverIcons.update(e.view.getState(e.getSelectionCell())))}}else return this.isControlDown(a)?function(){b(a.keyCode,mxEvent.isShiftDown(a)?e.gridSize:null,!0)}:function(){b(a.keyCode,mxEvent.isShiftDown(a)?e.gridSize:null)}}return g.apply(this,arguments)};d.bindAction=
-mxUtils.bind(this,function(a,b,c,e){var f=this.actions.get(c);null!=f&&(c=function(){f.isEnabled()&&f.funct()},b?e?d.bindControlShiftKey(a,c):d.bindControlKey(a,c):e?d.bindShiftKey(a,c):d.bindKey(a,c))});var m=this,l=d.escape;d.escape=function(a){l.apply(this,arguments)};d.enter=function(){};d.bindControlShiftKey(36,function(){e.exitGroup()});d.bindControlShiftKey(35,function(){e.enterGroup()});d.bindShiftKey(36,function(){e.home()});d.bindKey(35,function(){e.refresh()});d.bindAction(107,!0,"zoomIn");
-d.bindAction(109,!0,"zoomOut");d.bindAction(80,!0,"print");d.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)d.bindControlKey(36,function(){e.isEnabled()&&e.foldCells(!0)}),d.bindControlKey(35,function(){e.isEnabled()&&e.foldCells(!1)}),d.bindControlKey(13,function(){m.ctrlEnter()}),d.bindAction(8,!1,"delete"),d.bindAction(8,!0,"deleteAll"),d.bindAction(8,!1,"deleteLabels",!0),d.bindAction(46,!1,"delete"),d.bindAction(46,!0,"deleteAll"),d.bindAction(46,!1,"deleteLabels",
+mxUtils.bind(this,function(a,b,c,e){var f=this.actions.get(c);null!=f&&(c=function(){f.isEnabled()&&f.funct()},b?e?d.bindControlShiftKey(a,c):d.bindControlKey(a,c):e?d.bindShiftKey(a,c):d.bindKey(a,c))});var l=this,m=d.escape;d.escape=function(a){m.apply(this,arguments)};d.enter=function(){};d.bindControlShiftKey(36,function(){e.exitGroup()});d.bindControlShiftKey(35,function(){e.enterGroup()});d.bindShiftKey(36,function(){e.home()});d.bindKey(35,function(){e.refresh()});d.bindAction(107,!0,"zoomIn");
+d.bindAction(109,!0,"zoomOut");d.bindAction(80,!0,"print");d.bindAction(79,!0,"outline",!0);if(!this.editor.chromeless||this.editor.editable)d.bindControlKey(36,function(){e.isEnabled()&&e.foldCells(!0)}),d.bindControlKey(35,function(){e.isEnabled()&&e.foldCells(!1)}),d.bindControlKey(13,function(){l.ctrlEnter()}),d.bindAction(8,!1,"delete"),d.bindAction(8,!0,"deleteAll"),d.bindAction(8,!1,"deleteLabels",!0),d.bindAction(46,!1,"delete"),d.bindAction(46,!0,"deleteAll"),d.bindAction(46,!1,"deleteLabels",
!0),d.bindAction(36,!1,"resetView"),d.bindAction(72,!0,"fitWindow",!0),d.bindAction(74,!0,"fitPage"),d.bindAction(74,!0,"fitTwoPages",!0),d.bindAction(48,!0,"customZoom"),d.bindAction(82,!0,"turn"),d.bindAction(82,!0,"clearDefaultStyle",!0),d.bindAction(83,!0,"save"),d.bindAction(83,!0,"saveAs",!0),d.bindAction(65,!0,"selectAll"),d.bindAction(65,!0,"selectNone",!0),d.bindAction(73,!0,"selectVertices",!0),d.bindAction(69,!0,"selectEdges",!0),d.bindAction(69,!0,"editStyle"),d.bindAction(66,!0,"bold"),
d.bindAction(66,!0,"toBack",!0),d.bindAction(70,!0,"toFront",!0),d.bindAction(68,!0,"duplicate"),d.bindAction(68,!0,"setAsDefaultStyle",!0),d.bindAction(90,!0,"undo"),d.bindAction(89,!0,"autosize",!0),d.bindAction(88,!0,"cut"),d.bindAction(67,!0,"copy"),d.bindAction(86,!0,"paste"),d.bindAction(71,!0,"group"),d.bindAction(77,!0,"editData"),d.bindAction(71,!0,"grid",!0),d.bindAction(73,!0,"italic"),d.bindAction(76,!0,"lockUnlock"),d.bindAction(76,!0,"layers",!0),d.bindAction(80,!0,"formatPanel",!0),
d.bindAction(85,!0,"underline"),d.bindAction(85,!0,"ungroup",!0),d.bindAction(190,!0,"superscript"),d.bindAction(188,!0,"subscript"),d.bindAction(13,!1,"keyPressEnter"),d.bindKey(113,function(){e.isEnabled()&&e.startEditingAtCell()});mxClient.IS_WIN?d.bindAction(89,!0,"redo"):d.bindAction(90,!0,"redo",!0);return d};
@@ -2369,14 +2371,14 @@ Sidebar.prototype.searchImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgo
"large"!=urlParams["sidebar-entries"]&&(Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=1,Sidebar.prototype.thumbWidth=32,Sidebar.prototype.thumbHeight=30,Sidebar.prototype.minThumbStrokeWidth=1.3,Sidebar.prototype.thumbAntiAlias=!0);Sidebar.prototype.sidebarTitleSize=8;Sidebar.prototype.sidebarTitles=!1;Sidebar.prototype.tooltipTitles=!0;Sidebar.prototype.maxTooltipWidth=400;Sidebar.prototype.maxTooltipHeight=400;Sidebar.prototype.addStencilsToIndex=!0;
Sidebar.prototype.defaultImageWidth=80;Sidebar.prototype.defaultImageHeight=80;Sidebar.prototype.tooltipMouseDown=null;
Sidebar.prototype.getTooltipOffset=function(a,b){var c=b.height+2*this.tooltipBorder;return new mxPoint(this.container.offsetWidth+this.editorUi.splitSize+10+this.editorUi.container.offsetLeft,Math.min(Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)-c-20,Math.max(0,this.editorUi.container.offsetTop+this.container.offsetTop+a.offsetTop-this.container.scrollTop-c/2+16)))};
-Sidebar.prototype.createTooltip=function(a,b,c,e,d,f,h,k,g,m,l){l=null!=l?l:!0;this.tooltipMouseDown=g;null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.userSelect="none",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),mxEvent.addMouseWheelListener(mxUtils.bind(this,function(a){this.hideTooltip()}),this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),
+Sidebar.prototype.createTooltip=function(a,b,c,e,d,f,h,k,g,l,m){m=null!=m?m:!0;this.tooltipMouseDown=g;null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.userSelect="none",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),mxEvent.addMouseWheelListener(mxUtils.bind(this,function(a){this.hideTooltip()}),this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),
this.graph2.resetViewOnRootChange=!1,this.graph2.foldingEnabled=!1,this.graph2.gridEnabled=!1,this.graph2.autoScroll=!1,this.graph2.setTooltips(!1),this.graph2.setConnectable(!1),this.graph2.setPanning(!1),this.graph2.setEnabled(!1),this.graph2.openLink=mxUtils.bind(this,function(){this.hideTooltip()}),mxEvent.addGestureListeners(this.tooltip,mxUtils.bind(this,function(a){null!=this.tooltipMouseDown&&this.tooltipMouseDown(a);window.setTimeout(mxUtils.bind(this,function(){null!=this.tooltipCloseImage&&
"none"!=this.tooltipCloseImage.style.display||this.hideTooltip()}),0)}),null,mxUtils.bind(this,function(a){this.hideTooltip()})),mxClient.IS_SVG||(this.graph2.view.canvas.style.position="relative"),g=document.createElement("img"),g.setAttribute("src",Dialog.prototype.closeImage),g.setAttribute("title",mxResources.get("close")),g.style.position="absolute",g.style.cursor="default",g.style.padding="8px",g.style.right="2px",g.style.top="2px",this.tooltip.appendChild(g),this.tooltipCloseImage=g,mxEvent.addListener(g,
-"click",mxUtils.bind(this,function(a){this.hideTooltip();mxEvent.consume(a)})));this.tooltipCloseImage.style.display=m?"":"none";this.graph2.model.clear();this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder);this.graph2.view.scale=!k&&(c>this.maxTooltipWidth||e>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/c,this.maxTooltipHeight/e))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==f||f;f=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;
-b=this.graph2.cloneCells(b);this.editorUi.insertHandler(b,null,this.graph2.model,l?null:this.editorUi.editor.graph.defaultVertexStyle,l?null:this.editorUi.editor.graph.defaultEdgeStyle,l,!0);this.graph2.addCells(b);mxClient.NO_FO=f;l=this.graph2.getGraphBounds();k&&0<c&&0<e&&(l.width>c||l.height>e)?(c=Math.round(100*Math.min(c/l.width,e/l.height))/100,mxClient.NO_FO?(this.graph2.view.setScale(Math.round(100*Math.min(this.maxTooltipWidth/l.width,this.maxTooltipHeight/l.height))/100),l=this.graph2.getGraphBounds()):
-(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="scale("+c+")",this.graph2.view.getDrawPane().ownerSVGElement.style.transformOrigin="0 0",l.width*=c,l.height*=c)):mxClient.NO_FO||(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="");c=l.width+2*this.tooltipBorder+4;e=l.height+2*this.tooltipBorder;this.tooltip.style.overflow="visible";this.tooltip.style.width=c+"px";k=c;this.tooltipTitles&&null!=d&&0<d.length?(null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),
+"click",mxUtils.bind(this,function(a){this.hideTooltip();mxEvent.consume(a)})));this.tooltipCloseImage.style.display=l?"":"none";this.graph2.model.clear();this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder);this.graph2.view.scale=!k&&(c>this.maxTooltipWidth||e>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/c,this.maxTooltipHeight/e))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==f||f;f=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;
+b=this.graph2.cloneCells(b);this.editorUi.insertHandler(b,null,this.graph2.model,m?null:this.editorUi.editor.graph.defaultVertexStyle,m?null:this.editorUi.editor.graph.defaultEdgeStyle,m,!0);this.graph2.addCells(b);mxClient.NO_FO=f;m=this.graph2.getGraphBounds();k&&0<c&&0<e&&(m.width>c||m.height>e)?(c=Math.round(100*Math.min(c/m.width,e/m.height))/100,mxClient.NO_FO?(this.graph2.view.setScale(Math.round(100*Math.min(this.maxTooltipWidth/m.width,this.maxTooltipHeight/m.height))/100),m=this.graph2.getGraphBounds()):
+(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="scale("+c+")",this.graph2.view.getDrawPane().ownerSVGElement.style.transformOrigin="0 0",m.width*=c,m.height*=c)):mxClient.NO_FO||(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="");c=m.width+2*this.tooltipBorder+4;e=m.height+2*this.tooltipBorder;this.tooltip.style.overflow="visible";this.tooltip.style.width=c+"px";k=c;this.tooltipTitles&&null!=d&&0<d.length?(null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),
this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",this.tooltipTitle.style.width="100%",this.tooltipTitle.style.overflow="hidden",this.tooltipTitle.style.position="absolute",this.tooltipTitle.style.paddingTop="6px",this.tooltipTitle.style.bottom="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,d),k=Math.min(this.maxTooltipWidth,Math.max(c,this.tooltipTitle.scrollWidth+
-4)),d=this.tooltipTitle.offsetHeight+10,e+=d,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-d+"px":(e-=6,this.tooltipTitle.style.top=e-d+"px")):null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");k>c&&(this.tooltip.style.width=k+"px");this.tooltip.style.height=e+"px";d=-Math.round(l.x-this.tooltipBorder)+(k>c?(k-c)/2:0);c=-Math.round(l.y-this.tooltipBorder);h=null!=h?h:this.getTooltipOffset(a,l);a=h.x;h=h.y;mxClient.IS_SVG?0!=d||0!=c?this.graph2.view.canvas.setAttribute("transform",
+4)),d=this.tooltipTitle.offsetHeight+10,e+=d,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-d+"px":(e-=6,this.tooltipTitle.style.top=e-d+"px")):null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");k>c&&(this.tooltip.style.width=k+"px");this.tooltip.style.height=e+"px";d=-Math.round(m.x-this.tooltipBorder)+(k>c?(k-c)/2:0);c=-Math.round(m.y-this.tooltipBorder);h=null!=h?h:this.getTooltipOffset(a,m);a=h.x;h=h.y;mxClient.IS_SVG?0!=d||0!=c?this.graph2.view.canvas.setAttribute("transform",
"translate("+d+","+c+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=d+"px",this.graph2.view.drawPane.style.top=c+"px");this.tooltip.style.position="absolute";this.tooltip.style.left=a+"px";this.tooltip.style.top=h+"px";mxUtils.fit(this.tooltip);this.lastCreated=Date.now()};
Sidebar.prototype.showTooltip=function(a,b,c,e,d,f){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=a){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var h=mxUtils.bind(this,function(){this.createTooltip(a,b,c,e,d,f)});null!=this.tooltip&&"none"!=this.tooltip.style.display?h():this.thread=window.setTimeout(h,this.tooltipDelay);this.currentElt=a}};
Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);null!=this.tooltip&&(this.tooltip.style.display="none",this.currentElt=null);this.tooltipMouseDown=null};Sidebar.prototype.addDataEntry=function(a,b,c,e,d){return this.addEntry(a,mxUtils.bind(this,function(){return this.createVertexTemplateFromData(d,b,c,e)}))};
@@ -2384,16 +2386,16 @@ Sidebar.prototype.addEntries=function(a){for(var b=0;b<a.length;b++)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[b])};Sidebar.prototype.setCurrentSearchEntryLibrary=function(a,b){this.currentSearchEntryLibrary=null!=a?{id:a,lib:b}:null};
Sidebar.prototype.addEntry=function(a,b){if(null!=this.taglist&&null!=a&&0<a.length){null!=this.currentSearchEntryLibrary&&(b.parentLibraries=[this.currentSearchEntryLibrary]);for(var c=a.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),e=[],d={},f=0;f<c.length;f++){null==d[c[f]]&&(d[c[f]]=!0,e.push(c[f]));var h=c[f].replace(/\.*\d*$/,"");h!=c[f]&&null==d[h]&&(d[h]=!0,e.push(h))}for(f=0;f<e.length;f++)this.addEntryForTag(e[f],b)}return b};
Sidebar.prototype.addEntryForTag=function(a,b){if(null!=a&&1<a.length){var c=this.taglist[a];"object"!==typeof c&&(c={entries:[]},this.taglist[a]=c);c.entries.push(b)}};
-Sidebar.prototype.searchEntries=function(a,b,c,e,d){if(null!=this.taglist&&null!=a){var f=a.toLowerCase().split(" ");d=new mxDictionary;var h=(c+1)*b;a=[];for(var k=0,g=0;g<f.length;g++)if(0<f[g].length){var m=this.taglist[f[g]],l=new mxDictionary;if(null!=m){var n=m.entries;a=[];for(var p=0;p<n.length;p++)if(m=n[p],0==k==(null==d.get(m))&&(l.put(m,m),a.push(m),g==f.length-1&&a.length==h)){e(a.slice(c*b,h),h,!0,f);return}}else a=[];d=l;k++}d=a.length;e(a.slice(c*b,(c+1)*b),d,!1,f)}else e([],null,
+Sidebar.prototype.searchEntries=function(a,b,c,e,d){if(null!=this.taglist&&null!=a){var f=a.toLowerCase().split(" ");d=new mxDictionary;var h=(c+1)*b;a=[];for(var k=0,g=0;g<f.length;g++)if(0<f[g].length){var l=this.taglist[f[g]],m=new mxDictionary;if(null!=l){var n=l.entries;a=[];for(var p=0;p<n.length;p++)if(l=n[p],0==k==(null==d.get(l))&&(m.put(l,l),a.push(l),g==f.length-1&&a.length==h)){e(a.slice(c*b,h),h,!0,f);return}}else a=[];d=m;k++}d=a.length;e(a.slice(c*b,(c+1)*b),d,!1,f)}else e([],null,
null,f)};Sidebar.prototype.filterTags=function(a){if(null!=a){a=a.split(" ");for(var b=[],c={},e=0;e<a.length;e++)null==c[a[e]]&&(c[a[e]]="1",b.push(a[e]));return b.join(" ")}return null};Sidebar.prototype.cloneCell=function(a,b){var c=a.clone();null!=b&&(c.value=b);return c};Sidebar.prototype.showPopupMenuForEntry=function(a,b,c){};
Sidebar.prototype.addSearchPalette=function(a){var b=document.createElement("div");b.style.visibility="hidden";this.container.appendChild(b);var c=document.createElement("div");c.className="geSidebar";c.style.boxSizing="border-box";c.style.overflow="hidden";c.style.width="100%";c.style.padding="8px";c.style.paddingTop="14px";c.style.paddingBottom="0px";a||(c.style.display="none");var e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.textOverflow="clip";e.style.paddingBottom="8px";
e.style.cursor="default";var d=document.createElement("input");d.setAttribute("placeholder",mxResources.get("searchShapes"));d.setAttribute("type","text");d.style.fontSize="12px";d.style.overflow="hidden";d.style.boxSizing="border-box";d.style.border="solid 1px #d5d5d5";d.style.borderRadius="4px";d.style.width="100%";d.style.outline="none";d.style.padding="6px";d.style.paddingRight="20px";e.appendChild(d);var f=document.createElement("img");f.setAttribute("src",Sidebar.prototype.searchImage);f.setAttribute("title",
mxResources.get("search"));f.style.position="relative";f.style.left="-18px";f.style.top="1px";f.style.background="url('"+this.editorUi.editor.transparentImage+"')";var h;e.appendChild(f);c.appendChild(e);var k=document.createElement("center"),g=mxUtils.button(mxResources.get("moreResults"),function(){h()});g.style.display="none";g.style.lineHeight="normal";g.style.fontSize="12px";g.style.padding="6px 12px 6px 12px";g.style.marginTop="4px";g.style.marginBottom="8px";k.style.paddingTop="4px";k.style.paddingBottom=
-"4px";k.appendChild(g);c.appendChild(k);var m="",l=!1,n=!1,p=0,r={},u=12,v=mxUtils.bind(this,function(){l=!1;this.currentSearch=null;for(var a=c.firstChild;null!=a;){var b=a.nextSibling;a!=e&&a!=k&&a.parentNode.removeChild(a);a=b}});mxEvent.addListener(f,"click",function(){f.getAttribute("src")==Dialog.prototype.closeImage&&(f.setAttribute("src",Sidebar.prototype.searchImage),f.setAttribute("title",mxResources.get("search")),g.style.display="none",m=d.value="",v());d.focus()});h=mxUtils.bind(this,
-function(){u=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=d.value){if(null!=k.parentNode&&(m!=d.value&&(v(),m=d.value,r={},n=!1,p=0),!l&&!n)){g.setAttribute("disabled","true");g.style.display="";g.style.cursor="wait";g.innerHTML=mxResources.get("loading")+"...";l=!0;var a={};this.currentSearch=a;this.searchEntries(m,u,p,mxUtils.bind(this,function(b,d,e,f){if(this.currentSearch==a){b=null!=b?b:[];l=!1;p++;this.insertSearchHint(c,m,u,p,b,d,e,f);
-0==b.length&&1==p&&(m="");null!=k.parentNode&&k.parentNode.removeChild(k);for(d=0;d<b.length;d++)mxUtils.bind(this,function(a){try{var b=a();null==r[b.innerHTML]?(r[b.innerHTML]=null!=a.parentLibraries?a.parentLibraries.slice():[],c.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(G){}})(b[d]);
-e?(g.removeAttribute("disabled"),g.innerHTML=mxResources.get("moreResults")):(g.innerHTML=mxResources.get("reset"),g.style.display="none",n=!0);g.style.cursor="";c.appendChild(k)}}),mxUtils.bind(this,function(){g.style.cursor=""}))}}else v(),m=d.value="",r={},g.style.display="none",n=!1,d.focus()});this.searchShapes=function(a){d.value=a;h()};mxEvent.addListener(d,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(h(),mxEvent.consume(a))}));mxEvent.addListener(d,"keyup",mxUtils.bind(this,function(a){""==
-d.value?(f.setAttribute("src",Sidebar.prototype.searchImage),f.setAttribute("title",mxResources.get("search"))):(f.setAttribute("src",Dialog.prototype.closeImage),f.setAttribute("title",mxResources.get("reset")));""==d.value?(n=!0,g.style.display="none"):d.value!=m?(g.style.display="none",n=!1):l||(g.style.display=n?"none":"")}));mxEvent.addListener(d,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(d,"selectstart",function(a){a.stopPropagation&&
+"4px";k.appendChild(g);c.appendChild(k);var l="",m=!1,n=!1,p=0,r={},u=12,v=mxUtils.bind(this,function(){m=!1;this.currentSearch=null;for(var a=c.firstChild;null!=a;){var b=a.nextSibling;a!=e&&a!=k&&a.parentNode.removeChild(a);a=b}});mxEvent.addListener(f,"click",function(){f.getAttribute("src")==Dialog.prototype.closeImage&&(f.setAttribute("src",Sidebar.prototype.searchImage),f.setAttribute("title",mxResources.get("search")),g.style.display="none",l=d.value="",v());d.focus()});h=mxUtils.bind(this,
+function(){u=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10)));this.hideTooltip();if(""!=d.value){if(null!=k.parentNode&&(l!=d.value&&(v(),l=d.value,r={},n=!1,p=0),!m&&!n)){g.setAttribute("disabled","true");g.style.display="";g.style.cursor="wait";g.innerHTML=mxResources.get("loading")+"...";m=!0;var a={};this.currentSearch=a;this.searchEntries(l,u,p,mxUtils.bind(this,function(b,d,e,f){if(this.currentSearch==a){b=null!=b?b:[];m=!1;p++;this.insertSearchHint(c,l,u,p,b,d,e,f);
+0==b.length&&1==p&&(l="");null!=k.parentNode&&k.parentNode.removeChild(k);for(d=0;d<b.length;d++)mxUtils.bind(this,function(a){try{var b=a();null==r[b.innerHTML]?(r[b.innerHTML]=null!=a.parentLibraries?a.parentLibraries.slice():[],c.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(G){}})(b[d]);
+e?(g.removeAttribute("disabled"),g.innerHTML=mxResources.get("moreResults")):(g.innerHTML=mxResources.get("reset"),g.style.display="none",n=!0);g.style.cursor="";c.appendChild(k)}}),mxUtils.bind(this,function(){g.style.cursor=""}))}}else v(),l=d.value="",r={},g.style.display="none",n=!1,d.focus()});this.searchShapes=function(a){d.value=a;h()};mxEvent.addListener(d,"keydown",mxUtils.bind(this,function(a){13==a.keyCode&&(h(),mxEvent.consume(a))}));mxEvent.addListener(d,"keyup",mxUtils.bind(this,function(a){""==
+d.value?(f.setAttribute("src",Sidebar.prototype.searchImage),f.setAttribute("title",mxResources.get("search"))):(f.setAttribute("src",Dialog.prototype.closeImage),f.setAttribute("title",mxResources.get("reset")));""==d.value?(n=!0,g.style.display="none"):d.value!=l?(g.style.display="none",n=!1):m||(g.style.display=n?"none":"")}));mxEvent.addListener(d,"mousedown",function(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=!0});mxEvent.addListener(d,"selectstart",function(a){a.stopPropagation&&
a.stopPropagation();a.cancelBubble=!0});a=document.createElement("div");a.appendChild(c);this.container.appendChild(a);this.palettes.search=[b,a]};
Sidebar.prototype.insertSearchHint=function(a,b,c,e,d,f,h,k){0==d.length&&1==e&&(c=document.createElement("div"),c.className="geTitle",c.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(c,mxResources.get("noResultsFor",[b])),a.appendChild(c))};
Sidebar.prototype.addGeneralPalette=function(a){this.setCurrentSearchEntryLibrary("general","general");var b=this,c=parseInt(this.editorUi.editor.graph.defaultVertexStyle.fontSize),c=isNaN(c)?"":"fontSize="+Math.min(16,c)+";",e=new mxCell("List Item",new mxGeometry(0,0,80,30),"text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;"+c);e.vertex=!0;c=[this.createVertexTemplateEntry("rounded=0;whiteSpace=wrap;html=1;",
@@ -2420,7 +2422,7 @@ Sidebar.prototype.addMiscPalette=function(a){var b=this;this.setCurrentSearchEnt
this.addDataEntry("table",180,120,"Table 2","7ZhRb5swEMc/Da+TDSFJX0u7vrQv7bR3NzjBkvEhcynJPv3OYDeLUlS0JURTkUDyne+M+f05nXCUZOXuwYqqeIJc6ii5j5LMAmA3KneZ1DqKmcqj5C6KY0Z3FH/vmeXtLKuElQaHJMRdwpvQW9l5OkeNe+0ddSEqN0Tx6ly3BZa0zTtOw6ZQKF8qsXLzDb0E+WoUFl/UL+diZK/AoFBGWp+zAq1FVat2sS6iUDp/FHvYYnhMsFz0tjSPlF/7aAvNn6bfv7Qod70MWpcH8CChlGj3FNKoHAsfsew4sUKqTRHSPDwm6s6xec89IKWBp/ox4WQ4YdoyKqGf5QqF2QyBfQozt1D9EHYj0TsqUAalvX8jGgHaWmmdgQaniQHjHoRQ+Ukt1yH3FRChDOA9mPdFWyjpLV2EKWPf0iilt8nI5gebLhduMQNTo6Uvwa0hRY2NrHGogPHfCTg7g36zE/1+tsOY8bMKaYyLPgj5zxoBMV1raMgsVJ5L88HHwIcKkHwqwPxC/NNe/uctpP+S/+6Y/QhyzHvlSCY5QkI8nh6Lqb1crL3sj2Uao9sse8tr9oXKa3G1bnPTyz+d+I/fbTjr1WM+6XGFdsP51G8u3W+WI/YbfnoAEAps8YUKjH9+QnCxijo9IAgKLCcFrtFz+v/4byZBRmg6ZB4OQNu5o/PR3w=="),
this.addDataEntry("table title",180,150,"Table with Title 1","7VjBbqMwEP0arisMpeleQ7u9tJemP+CGCbZkbGRPQtKv37FxGnWTKJVa0q6CBJLnecbg9xg9mSQvm/W95a14NBWoJL9L8tIag/2oWZegVJKlskry2yTLUrqT7M+RWRZm05Zb0PiRgqwvWHG1hB555i8KetThRkXUCd76IYbZfOqQW5zJV4/lKQFzo5FLDZYAFmKleOtkSL8NGUKq6oFvzBK3C22j6YKqZ/FpvporWWsaz2kbfslpa6Qf3a0IcDEpvjpYhPXR7Qco7v0eTANoN5TSyQpFzLjpKUoFyFpsy4oIctcD9Vvtjk0aREIPk5vvkXuUV3pllFw9wRy5rgPFAhsVd9oJiTBr+dyndvSxHCS4sqZ95rYGjMC/pHlsIZUqjTJeJ220fxCaNk4qWGxrXwyiaWJgIzFviwZSiildRFOZ/iqSgnZTUsx2MV0+3WJptENLX4dfA7jDDhx+VMDssICbSHGU6ZSeV18g59Wwcmrts3dyflopQ8wulOkoFLKqQH+mj/KTfXQ9EO3FSPse7ev3lJ9BhetRhWMqsOx8MkxGSxnaUiZntJSbS+6qybdZyu+R9h9gKSwdZfgJnsLYaCpDmwpjZ3QVtn+qv6DGYqeP/IN10sAn/v+T+G9wlos+qp/QYUBroXD36zLMvfuz+Rc="),
this.addDataEntry("table title",180,150,"Table with Title 2","7VjBbqMwEP0arivAJdtcod1e0ktT7d0NBiwZG9nTQvbrd2xMsy1B7WoTglaVQJp5nhnwe/gdCEhWd3eaNtW9ypkIyG1AMq0U9FHdZUyIIA55HpCbII5DvIP4x8Rq5FbDhmom4TMNcd/wQsUz65FH+iRYjxrYC4+aijY2BLdKUgNUw5b/shgJEdgpCZRLphGIXC4EbQx35TeuouIi39C9eoZh0JClBe9Y/qBa47u1ajc4zPjWAodv/cvYZSp4KTHe4S7tE9NGcRvdviAwzPA7YxpYN8mOgzw1d0zVDPQeS1qeQ+UrrnsGw4rxshraEg9S0wPla++BbAw838e5JyPuJ2nHVwZOxQPbAZWlU6CCWvidthUHtm3ozpa2+C0d5T/XqnmkumTggWOkFVyITAllZZRK2geBanyDYMXQ+6QAVD2o5Yl5HepISVK8kKYs/JYECe4mwzw65HjZcg2ZkgY0fjx2BqMGWmbgswLGxwXce4q9TB/pSU4g59VIzuikekppqw96/rVU4TupFFJbCNViWvE8Z/JfDhL58CBdnYn3ZMT7TxfG4cL5H1ysr00NPpDLctN3rmYSqHsrzp8H5VyCrf4H33sv5rJ8bzWj730fyXlaPZfte6uL+d71pO8tnP95fW9CoAv43vrL987te+sZfS8KR3qSZR+8k56r9cWML4omnW/hAszrfBMKnd/5MD38wXBrb35w/AY="),
-this.addDataEntry("crossfunctional cross-functional cross functional flowchart swimlane table",400,400,"Cross-Functional Flowchart","5ZjfbpswFMafhstNGJK2u1xY05tOmtYn8OAstmRsZB8C6dPvmD9NN6CNqoStTCKSz/GxcX6f+ZAJ4iSv7ywvxFeTgQri2yBOrDHYtvI6AaWCKJRZEH8JoiikXxBtJ3pZ0xsW3ILGUwZE7YA9VyW0Gbq5cx+2pU5RGs198VaZKhXcYlvs8KC6Yid44ZvIf/jUJhVSZff8YErss320saa6lxocdYS+1Kgy188zDukWD/LRT7jqShQvnGzmbkospKV1cg/fwbWFPgt1wXXWBYWRGsHe7olAP/NPo/GhWzWjmCu509ROwZdSoqMAFqGeJNmkOox3YHJAe6CSSmYo2opV2NIOBcidwD+S3LWJ3dPYozDU6LQZ1yke6PQ5RWMpxYaiVDJXXHs9hLHykf48yfiMTrOO9YYuWlkSflwHaxqXUMyOMV2+3GJitEPLZYMBuMMKHM4o1ynSROPSHHoF2hGvKcWiMyi1Gij1TXAHrymVGq0h7Z6jCz8OJyGNx5HWk0if6J0d6XoSabQgpOxqTqZXk0zjBTGNbuZkej1p0i/u0/dp0mfw5bEdfzljvhmo8/aNPj/J63/Hjj8tGOS8JszCBaOc13sZG6DszffFF9p/a75j8lzOfNnwoPmedjqbOPv9Dftlw7PgglDObMDD09qCWF7UgSk8fqZq+n77ivUL"),
+this.addDataEntry("crossfunctional cross-functional cross functional flowchart swimlane table",400,400,"Cross-Functional Flowchart","7ZhRb5swEMc/DY+dsEna7nEhS/ewStX6CTy41pYcG9mXBvrpa2NotBBKMnUp1ZB44P45O879zvpHFyXpurwxrOC3OgcZJd8jGvsnSY3WuItbdV2mIKV7F3mULCPqdRrR1RGZpM6MC2ZA4amLaVj8xOQGguIOaO3FaqMyFFoxn7ySeptxZjAkW6xkk2w5K/wrst9eWmRcyPwnq/QGW7WNFhbdDvfi2efPYp+spWSFFfXSpVcMZBtjxRP8AhsSvQplwVTeBA9a4X1zAOLi5vxgEMreetTSXjF2JbkBvQY0lYu3Ikce1sziUMWYg3jkuCcyG4TH17WHC+7EpubDLJIOi28ZauMk0i38VqwlU77mXBvx7KriUIUStZ/9AJbvSQudVwcKWcdCylRL933JUul650ILhfUPnS/c486dxl/m0dwdIHUx2cXu8ekGU60sGibqygOzuAX7wfDpsfCrlnHYY6gXCP2HvTDr9MIdZxaGeuHv0GdaKciaO9zXDB9IMDmWYNlL8BXW2QjOewnSieAQQXI5BoSXvQiTCeEQQno9BoRXvZ765i2cPPV9PfXQfT6/qV53mmEE1/i84K4+o5V+nbidym0cBkriidyp5Mbhm4T0Gueb/30m43xf4zzUDec3TtIdE/1395gcPUQak3WS7lBpIvdJzLM7A5rQjco9a7Gd5zcZfwz9XwA="),
this.createVertexTemplateEntry("text;html=1;strokeColor=#c0c0c0;fillColor=#ffffff;overflow=fill;rounded=0;",280,160,'<table border="1" width="100%" height="100%" cellpadding="4" style="width:100%;height:100%;border-collapse:collapse;"><tr style="background-color:#A7C942;color:#ffffff;border:1px solid #98bf21;"><th align="left">Title 1</th><th align="left">Title 2</th><th align="left">Title 3</th></tr><tr style="border:1px solid #98bf21;"><td>Value 1</td><td>Value 2</td><td>Value 3</td></tr><tr style="background-color:#EAF2D3;border:1px solid #98bf21;"><td>Value 4</td><td>Value 5</td><td>Value 6</td></tr><tr style="border:1px solid #98bf21;"><td>Value 7</td><td>Value 8</td><td>Value 9</td></tr><tr style="background-color:#EAF2D3;border:1px solid #98bf21;"><td>Value 10</td><td>Value 11</td><td>Value 12</td></tr></table>',
"HTML Table 1"),this.createVertexTemplateEntry("text;html=1;strokeColor=#c0c0c0;fillColor=none;overflow=fill;",180,140,'<table border="0" width="100%" height="100%" style="width:100%;height:100%;border-collapse:collapse;"><tr><td align="center">Value 1</td><td align="center">Value 2</td><td align="center">Value 3</td></tr><tr><td align="center">Value 4</td><td align="center">Value 5</td><td align="center">Value 6</td></tr><tr><td align="center">Value 7</td><td align="center">Value 8</td><td align="center">Value 9</td></tr></table>',
"HTML Table 2"),this.createVertexTemplateEntry("text;html=1;strokeColor=none;fillColor=none;overflow=fill;",180,140,'<table border="1" width="100%" height="100%" style="width:100%;height:100%;border-collapse:collapse;"><tr><td align="center">Value 1</td><td align="center">Value 2</td><td align="center">Value 3</td></tr><tr><td align="center">Value 4</td><td align="center">Value 5</td><td align="center">Value 6</td></tr><tr><td align="center">Value 7</td><td align="center">Value 8</td><td align="center">Value 9</td></tr></table>',
@@ -2508,54 +2510,54 @@ Sidebar.prototype.createThumb=function(a,b,c,e,d,f,h){this.graph.labelsVisible=n
mxClient.NO_FO||null==this.graph.view.getCanvas().ownerSVGElement?(k=this.graph.container.cloneNode(!1),k.innerHTML=this.graph.container.innerHTML):k=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0);this.graph.getModel().clear();mxClient.NO_FO=f;k.style.position="relative";k.style.overflow="hidden";k.style.left=this.thumbBorder+"px";k.style.top=this.thumbBorder+"px";k.style.width=b+"px";k.style.height=c+"px";k.style.visibility="";k.style.minWidth="";k.style.minHeight="";e.appendChild(k);
this.sidebarTitles&&null!=d&&0!=h&&(e.style.height=this.thumbHeight+0+this.sidebarTitleSize+8+"px",b=document.createElement("div"),b.style.color=Editor.isDarkMode()?"#A0A0A0":"#303030",b.style.fontSize=this.sidebarTitleSize+"px",b.style.textAlign="center",b.style.whiteSpace="nowrap",b.style.overflow="hidden",b.style.textOverflow="ellipsis",mxClient.IS_IE&&(b.style.height=this.sidebarTitleSize+12+"px"),b.style.paddingTop="4px",mxUtils.write(b,d),e.appendChild(b));return a};
Sidebar.prototype.createSection=function(a){return mxUtils.bind(this,function(){var b=document.createElement("div");b.setAttribute("title",a);b.style.textOverflow="ellipsis";b.style.whiteSpace="nowrap";b.style.textAlign="center";b.style.overflow="hidden";b.style.width="100%";b.style.padding="14px 0";mxUtils.write(b,a);return b})};
-Sidebar.prototype.createItem=function(a,b,c,e,d,f,h,k){k=null!=k?k:!0;var g=document.createElement("a");g.className="geItem";g.style.overflow="hidden";var m=2*this.thumbBorder;g.style.width=this.thumbWidth+m+"px";g.style.height=this.thumbHeight+m+"px";g.style.padding=this.thumbPadding+"px";mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});m=a;a=this.graph.cloneCells(a);this.editorUi.insertHandler(m,null,this.graph.model,this.editorUi.editor.graph.defaultVertexStyle,this.editorUi.editor.graph.defaultEdgeStyle,
-!0,!0);this.createThumb(m,this.thumbWidth,this.thumbHeight,g,b,c,e,d,f);var l=new mxRectangle(0,0,d,f);1<a.length||a[0].vertex?(e=this.createDragSource(g,this.createDropHandler(a,!0,h,l),this.createDragPreview(d,f),a,l),this.addClickHandler(g,e,a),e.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(e=this.createDragSource(g,this.createDropHandler(a,!1,h,l),this.createDragPreview(d,f),a,l),this.addClickHandler(g,e,a));
-!mxClient.IS_IOS&&k&&mxEvent.addGestureListeners(g,null,mxUtils.bind(this,function(d){mxEvent.isMouseEvent(d)&&this.showTooltip(g,a,l.width,l.height,b,c)}));return g};
+Sidebar.prototype.createItem=function(a,b,c,e,d,f,h,k){k=null!=k?k:!0;var g=document.createElement("a");g.className="geItem";g.style.overflow="hidden";var l=2*this.thumbBorder;g.style.width=this.thumbWidth+l+"px";g.style.height=this.thumbHeight+l+"px";g.style.padding=this.thumbPadding+"px";mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});l=a;a=this.graph.cloneCells(a);this.editorUi.insertHandler(l,null,this.graph.model,this.editorUi.editor.graph.defaultVertexStyle,this.editorUi.editor.graph.defaultEdgeStyle,
+!0,!0);this.createThumb(l,this.thumbWidth,this.thumbHeight,g,b,c,e,d,f);var m=new mxRectangle(0,0,d,f);1<a.length||a[0].vertex?(e=this.createDragSource(g,this.createDropHandler(a,!0,h,m),this.createDragPreview(d,f),a,m),this.addClickHandler(g,e,a),e.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})):null!=a[0]&&a[0].edge&&(e=this.createDragSource(g,this.createDropHandler(a,!1,h,m),this.createDragPreview(d,f),a,m),this.addClickHandler(g,e,a));
+!mxClient.IS_IOS&&k&&mxEvent.addGestureListeners(g,null,mxUtils.bind(this,function(d){mxEvent.isMouseEvent(d)&&this.showTooltip(g,a,m.width,m.height,b,c)}));return g};
Sidebar.prototype.updateShapes=function(a,b){var c=this.editorUi.editor.graph,e=c.getCellStyle(a),d=[];c.model.beginUpdate();try{for(var f=c.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(" "),k=
-0;k<b.length;k++){var g=b[k];if(c.getModel().isVertex(g)==c.getModel().isVertex(a)||c.getModel().isEdge(g)==c.getModel().isEdge(a)){var m=c.getCurrentCellStyle(b[k]);c.getModel().setStyle(g,f);if("1"==mxUtils.getValue(m,"composite","0"))for(var l=c.model.getChildCount(g);0<=l;l--)c.model.remove(c.model.getChildAt(g,l));"umlLifeline"==m[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=e[mxConstants.STYLE_SHAPE]&&(c.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[g]),c.setCellStyles("participant",e[mxConstants.STYLE_SHAPE],
-[g]));for(l=0;l<h.length;l++){var n=m[h[l]];null!=n&&c.setCellStyles(h[l],n,[g])}d.push(g)}}}finally{c.model.endUpdate()}return d};
-Sidebar.prototype.createDropHandler=function(a,b,c,e){c=null!=c?c:!0;return mxUtils.bind(this,function(d,f,h,k,g,m){for(m=m?null:mxEvent.isTouchEvent(f)||mxEvent.isPenEvent(f)?document.elementFromPoint(mxEvent.getClientX(f),mxEvent.getClientY(f)):mxEvent.getSource(f);null!=m&&m!=this.container;)m=m.parentNode;if(null==m&&d.isEnabled()){a=d.getImportableCells(a);if(0<a.length){d.stopEditing();m=null==h||mxEvent.isAltDown(f)?!1:d.isValidDropTarget(h,a,f);var l=null;null==h||m||(h=null);if(!d.isCellLocked(h||
-d.getDefaultParent())){d.model.beginUpdate();try{k=Math.round(k);g=Math.round(g);if(b&&d.isSplitTarget(h,a,f)){var n=d.view.scale,p=d.view.translate,r=(k+p.x)*n,u=(g+p.y)*n,v=d.cloneCells(a);d.splitEdge(h,v,null,k-e.width/2,g-e.height/2,r,u);l=v}else 0<a.length&&(l=d.importCells(a,k,g,h));if(null!=d.layoutManager){var t=d.layoutManager.getLayout(h);if(null!=t)for(n=d.view.scale,p=d.view.translate,r=(k+p.x)*n,u=(g+p.y)*n,h=0;h<l.length;h++)t.moveCell(l[h],r,u)}!c||null!=f&&mxEvent.isShiftDown(f)||
-d.fireEvent(new mxEventObject("cellsInserted","cells",l))}catch(x){this.editorUi.handleError(x)}finally{d.model.endUpdate()}null!=l&&0<l.length&&(d.scrollCellToVisible(l[0]),d.setSelectionCells(l));d.editAfterInsert&&null!=f&&mxEvent.isMouseEvent(f)&&null!=l&&1==l.length&&window.setTimeout(function(){d.startEditing(l[0])},0)}}mxEvent.consume(f)}})};
+0;k<b.length;k++){var g=b[k];if(c.getModel().isVertex(g)==c.getModel().isVertex(a)||c.getModel().isEdge(g)==c.getModel().isEdge(a)){var l=c.getCurrentCellStyle(b[k]);c.getModel().setStyle(g,f);if("1"==mxUtils.getValue(l,"composite","0"))for(var m=c.model.getChildCount(g);0<=m;m--)c.model.remove(c.model.getChildAt(g,m));"umlLifeline"==l[mxConstants.STYLE_SHAPE]&&"umlLifeline"!=e[mxConstants.STYLE_SHAPE]&&(c.setCellStyles(mxConstants.STYLE_SHAPE,"umlLifeline",[g]),c.setCellStyles("participant",e[mxConstants.STYLE_SHAPE],
+[g]));for(m=0;m<h.length;m++){var n=l[h[m]];null!=n&&c.setCellStyles(h[m],n,[g])}d.push(g)}}}finally{c.model.endUpdate()}return d};
+Sidebar.prototype.createDropHandler=function(a,b,c,e){c=null!=c?c:!0;return mxUtils.bind(this,function(d,f,h,k,g,l){for(l=l?null:mxEvent.isTouchEvent(f)||mxEvent.isPenEvent(f)?document.elementFromPoint(mxEvent.getClientX(f),mxEvent.getClientY(f)):mxEvent.getSource(f);null!=l&&l!=this.container;)l=l.parentNode;if(null==l&&d.isEnabled()){a=d.getImportableCells(a);if(0<a.length){d.stopEditing();l=null==h||mxEvent.isAltDown(f)?!1:d.isValidDropTarget(h,a,f);var m=null;null==h||l||(h=null);if(!d.isCellLocked(h||
+d.getDefaultParent())){d.model.beginUpdate();try{k=Math.round(k);g=Math.round(g);if(b&&d.isSplitTarget(h,a,f)){var n=d.view.scale,p=d.view.translate,r=(k+p.x)*n,u=(g+p.y)*n,v=d.cloneCells(a);d.splitEdge(h,v,null,k-e.width/2,g-e.height/2,r,u);m=v}else 0<a.length&&(m=d.importCells(a,k,g,h));if(null!=d.layoutManager){var t=d.layoutManager.getLayout(h);if(null!=t)for(n=d.view.scale,p=d.view.translate,r=(k+p.x)*n,u=(g+p.y)*n,h=0;h<m.length;h++)t.moveCell(m[h],r,u)}!c||null!=f&&mxEvent.isShiftDown(f)||
+d.fireEvent(new mxEventObject("cellsInserted","cells",m))}catch(x){this.editorUi.handleError(x)}finally{d.model.endUpdate()}null!=m&&0<m.length&&(d.scrollCellToVisible(m[0]),d.setSelectionCells(m));d.editAfterInsert&&null!=f&&mxEvent.isMouseEvent(f)&&null!=m&&1==m.length&&window.setTimeout(function(){d.startEditing(m[0])},0)}}mxEvent.consume(f)}})};
Sidebar.prototype.createDragPreview=function(a,b){var c=document.createElement("div");c.className="geDragPreview";c.style.width=a+"px";c.style.height=b+"px";return c};
-Sidebar.prototype.dropAndConnect=function(a,b,c,e,d){var f=this.getDropAndConnectGeometry(a,b[e],c,b),h=[];if(null!=f){var k=this.editorUi.editor.graph,g=null;k.model.beginUpdate();try{var m=k.getCellGeometry(a),l=k.getCellGeometry(b[e]),n=k.model.getParent(a),p=!0;if(null!=k.layoutManager){var r=k.layoutManager.getLayout(n);null!=r&&r.constructor==mxStackLayout&&(p=!1)}var h=k.model.isEdge(a)?null:k.view.getState(n),u=r=0;if(null!=h){var v=h.origin,r=v.x,u=v.y,t=f.getTerminalPoint(!1);null!=t&&(t.x+=
-v.x,t.y+=v.y)}var x=!k.isTableRow(a)&&!k.isTableCell(a)&&(k.model.isEdge(a)||null!=m&&!m.relative&&p),w=k.getCellAt((f.x+r+k.view.translate.x)*k.view.scale,(f.y+u+k.view.translate.y)*k.view.scale,null,null,null,function(a,b,c){return!k.isContainer(a.cell)});if(null!=w&&w!=n)h=k.view.getState(w),null!=h&&(v=h.origin,n=w,x=!0,k.model.isEdge(a)||(f.x-=v.x-r,f.y-=v.y-u));else if(!p||k.isTableRow(a)||k.isTableCell(a))f.x+=r,f.y+=u;r=l.x;u=l.y;k.model.isEdge(b[e])&&(u=r=0);h=b=k.importCells(b,f.x-(x?r:
-0),f.y-(x?u:0),x?n:null);if(k.model.isEdge(a))k.model.setTerminal(a,b[e],c==mxConstants.DIRECTION_NORTH);else if(k.model.isEdge(b[e])){k.model.setTerminal(b[e],a,!0);var y=k.getCellGeometry(b[e]);y.points=null;if(null!=y.getTerminalPoint(!1))y.setTerminalPoint(f.getTerminalPoint(!1),!1);else if(x&&k.model.isVertex(n)){var E=k.view.getState(n),v=E.cell!=k.view.currentRoot?E.origin:new mxPoint(0,0);k.cellsMoved(b,v.x,v.y,null,null,!0)}}else l=k.getCellGeometry(b[e]),r=f.x-Math.round(l.x),u=f.y-Math.round(l.y),
-f.x=Math.round(l.x),f.y=Math.round(l.y),k.model.setGeometry(b[e],f),k.cellsMoved(b,r,u,null,null,!0),h=b.slice(),g=1==h.length?h[0]:null,b.push(k.insertEdge(null,null,"",a,b[e],k.createCurrentEdgeStyle()));null!=d&&mxEvent.isShiftDown(d)||k.fireEvent(new mxEventObject("cellsInserted","cells",b))}catch(I){this.editorUi.handleError(I)}finally{k.model.endUpdate()}k.editAfterInsert&&null!=d&&mxEvent.isMouseEvent(d)&&null!=g&&window.setTimeout(function(){k.startEditing(g)},0)}return h};
+Sidebar.prototype.dropAndConnect=function(a,b,c,e,d){var f=this.getDropAndConnectGeometry(a,b[e],c,b),h=[];if(null!=f){var k=this.editorUi.editor.graph,g=null;k.model.beginUpdate();try{var l=k.getCellGeometry(a),m=k.getCellGeometry(b[e]),n=k.model.getParent(a),p=!0;if(null!=k.layoutManager){var r=k.layoutManager.getLayout(n);null!=r&&r.constructor==mxStackLayout&&(p=!1)}var h=k.model.isEdge(a)?null:k.view.getState(n),u=r=0;if(null!=h){var v=h.origin,r=v.x,u=v.y,t=f.getTerminalPoint(!1);null!=t&&(t.x+=
+v.x,t.y+=v.y)}var x=!k.isTableRow(a)&&!k.isTableCell(a)&&(k.model.isEdge(a)||null!=l&&!l.relative&&p),w=k.getCellAt((f.x+r+k.view.translate.x)*k.view.scale,(f.y+u+k.view.translate.y)*k.view.scale,null,null,null,function(a,b,c){return!k.isContainer(a.cell)});if(null!=w&&w!=n)h=k.view.getState(w),null!=h&&(v=h.origin,n=w,x=!0,k.model.isEdge(a)||(f.x-=v.x-r,f.y-=v.y-u));else if(!p||k.isTableRow(a)||k.isTableCell(a))f.x+=r,f.y+=u;r=m.x;u=m.y;k.model.isEdge(b[e])&&(u=r=0);h=b=k.importCells(b,f.x-(x?r:
+0),f.y-(x?u:0),x?n:null);if(k.model.isEdge(a))k.model.setTerminal(a,b[e],c==mxConstants.DIRECTION_NORTH);else if(k.model.isEdge(b[e])){k.model.setTerminal(b[e],a,!0);var y=k.getCellGeometry(b[e]);y.points=null;if(null!=y.getTerminalPoint(!1))y.setTerminalPoint(f.getTerminalPoint(!1),!1);else if(x&&k.model.isVertex(n)){var E=k.view.getState(n),v=E.cell!=k.view.currentRoot?E.origin:new mxPoint(0,0);k.cellsMoved(b,v.x,v.y,null,null,!0)}}else m=k.getCellGeometry(b[e]),r=f.x-Math.round(m.x),u=f.y-Math.round(m.y),
+f.x=Math.round(m.x),f.y=Math.round(m.y),k.model.setGeometry(b[e],f),k.cellsMoved(b,r,u,null,null,!0),h=b.slice(),g=1==h.length?h[0]:null,b.push(k.insertEdge(null,null,"",a,b[e],k.createCurrentEdgeStyle()));null!=d&&mxEvent.isShiftDown(d)||k.fireEvent(new mxEventObject("cellsInserted","cells",b))}catch(I){this.editorUi.handleError(I)}finally{k.model.endUpdate()}k.editAfterInsert&&null!=d&&mxEvent.isMouseEvent(d)&&null!=g&&window.setTimeout(function(){k.startEditing(g)},0)}return h};
Sidebar.prototype.getDropAndConnectGeometry=function(a,b,c,e){var d=this.editorUi.editor.graph,f=d.view,h=1<e.length,k=d.getCellGeometry(a);e=d.getCellGeometry(b);null!=k&&null!=e&&(e=e.clone(),d.model.isEdge(a)?(a=d.view.getState(a),k=a.absolutePoints,b=k[0],d=k[k.length-1],c==mxConstants.DIRECTION_NORTH?(e.x=b.x/f.scale-f.translate.x-e.width/2,e.y=b.y/f.scale-f.translate.y-e.height/2):(e.x=d.x/f.scale-f.translate.x-e.width/2,e.y=d.y/f.scale-f.translate.y-e.height/2)):(k.relative&&(a=d.view.getState(a),
k=k.clone(),k.x=(a.x-f.translate.x)/f.scale,k.y=(a.y-f.translate.y)/f.scale),f=d.defaultEdgeLength,d.model.isEdge(b)&&null!=e.getTerminalPoint(!0)&&null!=e.getTerminalPoint(!1)?(b=e.getTerminalPoint(!0),d=e.getTerminalPoint(!1),f=d.x-b.x,b=d.y-b.y,f=Math.sqrt(f*f+b*b),e.x=k.getCenterX(),e.y=k.getCenterY(),e.width=1,e.height=1,c==mxConstants.DIRECTION_NORTH?(e.height=f,e.y=k.y-f,e.setTerminalPoint(new mxPoint(e.x,e.y),!1)):c==mxConstants.DIRECTION_EAST?(e.width=f,e.x=k.x+k.width,e.setTerminalPoint(new mxPoint(e.x+
e.width,e.y),!1)):c==mxConstants.DIRECTION_SOUTH?(e.height=f,e.y=k.y+k.height,e.setTerminalPoint(new mxPoint(e.x,e.y+e.height),!1)):c==mxConstants.DIRECTION_WEST&&(e.width=f,e.x=k.x-f,e.setTerminalPoint(new mxPoint(e.x,e.y),!1))):(!h&&45<e.width&&45<e.height&&45<k.width&&45<k.height&&(e.width*=k.height/e.height,e.height=k.height),e.x=k.x+k.width/2-e.width/2,e.y=k.y+k.height/2-e.height/2,c==mxConstants.DIRECTION_NORTH?e.y=e.y-k.height/2-e.height/2-f:c==mxConstants.DIRECTION_EAST?e.x=e.x+k.width/2+
e.width/2+f:c==mxConstants.DIRECTION_SOUTH?e.y=e.y+k.height/2+e.height/2+f:c==mxConstants.DIRECTION_WEST&&(e.x=e.x-k.width/2-e.width/2-f),d.model.isEdge(b)&&null!=e.getTerminalPoint(!0)&&null!=b.getTerminal(!1)&&(k=d.getCellGeometry(b.getTerminal(!1)),null!=k&&(c==mxConstants.DIRECTION_NORTH?(e.x-=k.getCenterX(),e.y-=k.getCenterY()+k.height/2):c==mxConstants.DIRECTION_EAST?(e.x-=k.getCenterX()-k.width/2,e.y-=k.getCenterY()):c==mxConstants.DIRECTION_SOUTH?(e.x-=k.getCenterX(),e.y-=k.getCenterY()-k.height/
2):c==mxConstants.DIRECTION_WEST&&(e.x-=k.getCenterX()+k.width/2,e.y-=k.getCenterY()))))));return e};Sidebar.prototype.isDropStyleEnabled=function(a,b){var c=!0;if(null!=b&&1==a.length){var e=this.graph.getCellStyle(a[b]);null!=e&&(c=mxUtils.getValue(e,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(e,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE)}return c};
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,b,c,e,d){function f(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),J=d):mxUtils.setOpacity(d,d==z?30:20));return c}for(var k=this.editorUi,g=k.editor.graph,m=null,l=
-null,n=this,p=0;p<e.length&&(null==l&&g.model.isVertex(e[p])?l=p:null==m&&g.model.isEdge(e[p])&&null==g.model.getTerminal(e[p],!0)&&(m=p),null==l||null==m);p++);var r=this.isDropStyleEnabled(e,l),u=mxUtils.makeDraggable(a,g,mxUtils.bind(this,function(a,c,d,g,f){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=e&&null!=w&&J==z){var h=a.isCellSelected(w.cell)?a.getSelectionCells():[w.cell],h=this.updateShapes(a.model.isEdge(w.cell)?e[0]:e[l],h);a.setSelectionCells(h)}else null!=
-e&&null!=J&&null!=t&&J!=z?(h=a.model.isEdge(t.cell)||null==m?l:m,a.setSelectionCells(this.dropAndConnect(t.cell,e,N,h,c))):b.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),c,0,0,g.autoscroll,!0,!0);g.addListener(mxEvent.ESCAPE,function(a,b){u.isActive()&&u.reset()});var v=u.mouseDown;u.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||g.isCellLocked(g.getDefaultParent())||(g.stopEditing(),
-v.apply(this,arguments))};var t=null,x=null,w=null,y=!1,E=f(this.triangleUp,mxResources.get("connect")),I=f(this.triangleRight,mxResources.get("connect")),B=f(this.triangleDown,mxResources.get("connect")),G=f(this.triangleLeft,mxResources.get("connect")),z=f(this.refreshTarget,mxResources.get("replace")),F=null,K=f(this.roundDrop),L=f(this.roundDrop),N=mxConstants.DIRECTION_NORTH,J=null,R=u.createPreviewElement;u.createPreviewElement=function(a){var b=R.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents=
-"none");this.previewElementWidth=b.style.width;this.previewElementHeight=b.style.height;return b};var Y=u.dragEnter;u.dragEnter=function(a,b){null!=k.hoverIcons&&k.hoverIcons.setDisplay("none");Y.apply(this,arguments)};var ca=u.dragExit;u.dragExit=function(a,b){null!=k.hoverIcons&&k.hoverIcons.setDisplay("");ca.apply(this,arguments)};u.dragOver=function(a,b){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=J&&this.currentGuide.hide();if(null!=this.previewElement){var c=
-a.view;if(null!=w&&J==z)this.previewElement.style.display=a.model.isEdge(w.cell)?"none":"",this.previewElement.style.left=w.x+"px",this.previewElement.style.top=w.y+"px",this.previewElement.style.width=w.width+"px",this.previewElement.style.height=w.height+"px";else if(null!=t&&null!=J){null!=u.currentHighlight&&null!=u.currentHighlight.state&&u.currentHighlight.hide();var g=a.model.isEdge(t.cell)||null==m?l:m,f=n.getDropAndConnectGeometry(t.cell,e[g],N,e),h=a.model.isEdge(t.cell)?null:a.getCellGeometry(t.cell),
-k=a.getCellGeometry(e[g]),p=a.model.getParent(t.cell),r=c.translate.x*c.scale,v=c.translate.y*c.scale;null!=h&&!h.relative&&a.model.isVertex(p)&&p!=c.currentRoot&&(v=c.getState(p),r=v.x,v=v.y);h=k.x;k=k.y;a.model.isEdge(e[g])&&(k=h=0);this.previewElement.style.left=(f.x-h)*c.scale+r+"px";this.previewElement.style.top=(f.y-k)*c.scale+v+"px";1==e.length&&(this.previewElement.style.width=f.width*c.scale+"px",this.previewElement.style.height=f.height*c.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)-d.width*c.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-d.height*c.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var O=(new Date).getTime(),S=0,U=null,Q=this.editorUi.editor.graph.getCellStyle(e[0]);
-u.getDropTarget=mxUtils.bind(this,function(a,b,c,d){var g=mxEvent.isAltDown(d)||null==e?null:a.getCellAt(b,c,null,null,null,function(b,c,d){return a.isContainer(b.cell)});if(null!=g&&!this.graph.isCellConnectable(g)&&!this.graph.model.isEdge(g)){var f=this.graph.getModel().getParent(g);this.graph.getModel().isVertex(f)&&this.graph.isCellConnectable(f)&&(g=f)}a.isCellLocked(g)&&(g=null);var k=a.view.getState(g),f=J=null;U!=k?(O=(new Date).getTime(),S=0,U=k,null!=this.updateThread&&window.clearTimeout(this.updateThread),
-null!=k&&(this.updateThread=window.setTimeout(function(){null==J&&(U=k,u.getDropTarget(a,b,c,d))},this.dropTargetDelay+10))):S=(new Date).getTime()-O;if(r&&2500>S&&null!=k&&!mxEvent.isShiftDown(d)&&(mxUtils.getValue(k.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(Q,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(Q,mxConstants.STYLE_SHAPE)||1500<S||a.model.isEdge(k.cell))&&S>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(k)&&(a.model.isVertex(k.cell)&&null!=l||a.model.isEdge(k.cell)&&a.model.isEdge(e[0]))){if(a.isCellEditable(k.cell)){w=k;var m=a.model.isEdge(k.cell)?a.view.getPoint(k):new mxPoint(k.getCenterX(),k.getCenterY()),m=new mxRectangle(m.x-this.refreshTarget.width/2,m.y-this.refreshTarget.height/
-2,this.refreshTarget.width,this.refreshTarget.height);z.style.left=Math.floor(m.x)+"px";z.style.top=Math.floor(m.y)+"px";null==F&&(a.container.appendChild(z),F=z.parentNode);h(b,c,m,z)}}else null==w||!mxUtils.contains(w,b,c)||1500<S&&!mxEvent.isShiftDown(d)?(w=null,null!=F&&(z.parentNode.removeChild(z),F=null)):null!=w&&null!=F&&(m=a.model.isEdge(w.cell)?a.view.getPoint(w):new mxPoint(w.getCenterX(),w.getCenterY()),m=new mxRectangle(m.x-this.refreshTarget.width/2,m.y-this.refreshTarget.height/2,this.refreshTarget.width,
-this.refreshTarget.height),h(b,c,m,z));if(y&&null!=t&&!mxEvent.isAltDown(d)&&null==J){f=mxRectangle.fromRectangle(t);if(a.model.isEdge(t.cell)){var n=t.absolutePoints;null!=K.parentNode&&(m=n[0],f.add(h(b,c,new mxRectangle(m.x-this.roundDrop.width/2,m.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),K)));null!=L.parentNode&&(n=n[n.length-1],f.add(h(b,c,new mxRectangle(n.x-this.roundDrop.width/2,n.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)))}else m=
-mxRectangle.fromRectangle(t),null!=t.shape&&null!=t.shape.boundingBox&&(m=mxRectangle.fromRectangle(t.shape.boundingBox)),m.grow(this.graph.tolerance),m.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(t.cell),null!=n&&(m.x-=n.horizontalOffset/2,m.y-=n.verticalOffset/2,m.width+=n.horizontalOffset,m.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&&m.add(n.rotationShape.boundingBox)),f.add(h(b,c,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,m.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),E)),f.add(h(b,c,new mxRectangle(m.x+m.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),I)),f.add(h(b,c,new mxRectangle(t.getCenterX()-this.triangleDown.width/2,m.y+m.height,this.triangleDown.width,this.triangleDown.height),B)),f.add(h(b,c,
-new mxRectangle(m.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),G));null!=f&&f.grow(10)}N=mxConstants.DIRECTION_NORTH;J==I?N=mxConstants.DIRECTION_EAST:J==B||J==L?N=mxConstants.DIRECTION_SOUTH:J==G&&(N=mxConstants.DIRECTION_WEST);null!=w&&J==z&&(k=w);m=(null==l||a.isCellConnectable(e[l]))&&(a.model.isEdge(g)&&null!=l||a.model.isVertex(g)&&a.isCellConnectable(g));if(null!=t&&5E3<=S||t!=k&&(null==f||!mxUtils.contains(f,b,c)||500<
-S&&null==J&&m))if(y=!1,t=5E3>S&&S>this.dropTargetDelay||a.model.isEdge(g)?k:null,null!=t&&m){f=[K,L,E,I,B,G];for(m=0;m<f.length;m++)null!=f[m].parentNode&&f[m].parentNode.removeChild(f[m]);a.model.isEdge(g)?(n=k.absolutePoints,null!=n&&(m=n[0],n=n[n.length-1],f=a.tolerance,new mxRectangle(b-f,c-f,2*f,2*f),K.style.left=Math.floor(m.x-this.roundDrop.width/2)+"px",K.style.top=Math.floor(m.y-this.roundDrop.height/2)+"px",L.style.left=Math.floor(n.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(n.y-
-this.roundDrop.height/2)+"px",null==a.model.getTerminal(g,!0)&&a.container.appendChild(K),null==a.model.getTerminal(g,!1)&&a.container.appendChild(L))):(m=mxRectangle.fromRectangle(k),null!=k.shape&&null!=k.shape.boundingBox&&(m=mxRectangle.fromRectangle(k.shape.boundingBox)),m.grow(this.graph.tolerance),m.grow(HoverIcons.prototype.arrowSpacing),n=this.graph.selectionCellsHandler.getHandler(k.cell),null!=n&&(m.x-=n.horizontalOffset/2,m.y-=n.verticalOffset/2,m.width+=n.horizontalOffset,m.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&&m.add(n.rotationShape.boundingBox)),E.style.left=Math.floor(k.getCenterX()-this.triangleUp.width/2)+"px",E.style.top=Math.floor(m.y-this.triangleUp.height)+"px",I.style.left=Math.floor(m.x+m.width)+"px",I.style.top=Math.floor(k.getCenterY()-this.triangleRight.height/2)+"px",B.style.left=E.style.left,B.style.top=Math.floor(m.y+
-m.height)+"px",G.style.left=Math.floor(m.x-this.triangleLeft.width)+"px",G.style.top=I.style.top,"eastwest"!=k.style.portConstraint&&(a.container.appendChild(E),a.container.appendChild(B)),a.container.appendChild(I),a.container.appendChild(G));null!=k&&(x=a.selectionCellsHandler.getHandler(k.cell),null!=x&&null!=x.setHandlesVisible&&x.setHandlesVisible(!1));y=!0}else for(f=[K,L,E,I,B,G],m=0;m<f.length;m++)null!=f[m].parentNode&&f[m].parentNode.removeChild(f[m]);y||null==x||x.setHandlesVisible(!0);
-g=mxEvent.isAltDown(d)&&!mxEvent.isShiftDown(d)||null!=w&&J==z?null:mxDragSource.prototype.getDropTarget.apply(this,arguments);f=a.getModel();if(null!=g&&(null!=J||!a.isSplitTarget(g,e,d))){for(;null!=g&&!a.isValidDropTarget(g,e,d)&&f.isVertex(f.getParent(g));)g=f.getParent(g);null!=g&&(a.view.currentRoot==g||!a.isValidRoot(g)&&0==a.getModel().getChildCount(g)||a.isCellLocked(g)||f.isEdge(g)||!a.isValidDropTarget(g,e,d))&&(g=null)}a.isCellLocked(g)&&(g=null);return g});u.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,
+Sidebar.prototype.createDragSource=function(a,b,c,e,d){function f(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),J=d):mxUtils.setOpacity(d,d==z?30:20));return c}for(var k=this.editorUi,g=k.editor.graph,l=null,m=
+null,n=this,p=0;p<e.length&&(null==m&&g.model.isVertex(e[p])?m=p:null==l&&g.model.isEdge(e[p])&&null==g.model.getTerminal(e[p],!0)&&(l=p),null==m||null==l);p++);var r=this.isDropStyleEnabled(e,m),u=mxUtils.makeDraggable(a,g,mxUtils.bind(this,function(a,c,d,f,g){null!=this.updateThread&&window.clearTimeout(this.updateThread);if(null!=e&&null!=w&&J==z){var h=a.isCellSelected(w.cell)?a.getSelectionCells():[w.cell],h=this.updateShapes(a.model.isEdge(w.cell)?e[0]:e[m],h);a.setSelectionCells(h)}else null!=
+e&&null!=J&&null!=t&&J!=z?(h=a.model.isEdge(t.cell)||null==l?m:l,a.setSelectionCells(this.dropAndConnect(t.cell,e,O,h,c))):b.apply(this,arguments);null!=this.editorUi.hoverIcons&&this.editorUi.hoverIcons.update(a.view.getState(a.getSelectionCell()))}),c,0,0,g.autoscroll,!0,!0);g.addListener(mxEvent.ESCAPE,function(a,b){u.isActive()&&u.reset()});var v=u.mouseDown;u.mouseDown=function(a){mxEvent.isPopupTrigger(a)||mxEvent.isMultiTouchEvent(a)||g.isCellLocked(g.getDefaultParent())||(g.stopEditing(),
+v.apply(this,arguments))};var t=null,x=null,w=null,y=!1,E=f(this.triangleUp,mxResources.get("connect")),I=f(this.triangleRight,mxResources.get("connect")),B=f(this.triangleDown,mxResources.get("connect")),G=f(this.triangleLeft,mxResources.get("connect")),z=f(this.refreshTarget,mxResources.get("replace")),F=null,K=f(this.roundDrop),L=f(this.roundDrop),O=mxConstants.DIRECTION_NORTH,J=null,R=u.createPreviewElement;u.createPreviewElement=function(a){var b=R.apply(this,arguments);mxClient.IS_SVG&&(b.style.pointerEvents=
+"none");this.previewElementWidth=b.style.width;this.previewElementHeight=b.style.height;return b};var Z=u.dragEnter;u.dragEnter=function(a,b){null!=k.hoverIcons&&k.hoverIcons.setDisplay("none");Z.apply(this,arguments)};var ca=u.dragExit;u.dragExit=function(a,b){null!=k.hoverIcons&&k.hoverIcons.setDisplay("");ca.apply(this,arguments)};u.dragOver=function(a,b){mxDragSource.prototype.dragOver.apply(this,arguments);null!=this.currentGuide&&null!=J&&this.currentGuide.hide();if(null!=this.previewElement){var c=
+a.view;if(null!=w&&J==z)this.previewElement.style.display=a.model.isEdge(w.cell)?"none":"",this.previewElement.style.left=w.x+"px",this.previewElement.style.top=w.y+"px",this.previewElement.style.width=w.width+"px",this.previewElement.style.height=w.height+"px";else if(null!=t&&null!=J){null!=u.currentHighlight&&null!=u.currentHighlight.state&&u.currentHighlight.hide();var f=a.model.isEdge(t.cell)||null==l?m:l,g=n.getDropAndConnectGeometry(t.cell,e[f],O,e),h=a.model.isEdge(t.cell)?null:a.getCellGeometry(t.cell),
+k=a.getCellGeometry(e[f]),p=a.model.getParent(t.cell),r=c.translate.x*c.scale,v=c.translate.y*c.scale;null!=h&&!h.relative&&a.model.isVertex(p)&&p!=c.currentRoot&&(v=c.getState(p),r=v.x,v=v.y);h=k.x;k=k.y;a.model.isEdge(e[f])&&(k=h=0);this.previewElement.style.left=(g.x-h)*c.scale+r+"px";this.previewElement.style.top=(g.y-k)*c.scale+v+"px";1==e.length&&(this.previewElement.style.width=g.width*c.scale+"px",this.previewElement.style.height=g.height*c.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)-d.width*c.scale/2)+"px",this.previewElement.style.top=Math.round(parseInt(this.previewElement.style.top)-d.height*c.scale/2)+"px"):(this.previewElement.style.width=this.previewElementWidth,this.previewElement.style.height=this.previewElementHeight,this.previewElement.style.display="")}};var P=(new Date).getTime(),S=0,U=null,Q=this.editorUi.editor.graph.getCellStyle(e[0]);
+u.getDropTarget=mxUtils.bind(this,function(a,b,c,d){var f=mxEvent.isAltDown(d)||null==e?null:a.getCellAt(b,c,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=J=null;U!=k?(P=(new Date).getTime(),S=0,U=k,null!=this.updateThread&&window.clearTimeout(this.updateThread),
+null!=k&&(this.updateThread=window.setTimeout(function(){null==J&&(U=k,u.getDropTarget(a,b,c,d))},this.dropTargetDelay+10))):S=(new Date).getTime()-P;if(r&&2500>S&&null!=k&&!mxEvent.isShiftDown(d)&&(mxUtils.getValue(k.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(Q,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(Q,mxConstants.STYLE_SHAPE)||1500<S||a.model.isEdge(k.cell))&&S>this.dropTargetDelay&&!this.isDropStyleTargetIgnored(k)&&(a.model.isVertex(k.cell)&&null!=m||a.model.isEdge(k.cell)&&a.model.isEdge(e[0]))){if(a.isCellEditable(k.cell)){w=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);z.style.left=Math.floor(l.x)+"px";z.style.top=Math.floor(l.y)+"px";null==F&&(a.container.appendChild(z),F=z.parentNode);h(b,c,l,z)}}else null==w||!mxUtils.contains(w,b,c)||1500<S&&!mxEvent.isShiftDown(d)?(w=null,null!=F&&(z.parentNode.removeChild(z),F=null)):null!=w&&null!=F&&(l=a.model.isEdge(w.cell)?a.view.getPoint(w):new mxPoint(w.getCenterX(),w.getCenterY()),l=new mxRectangle(l.x-this.refreshTarget.width/2,l.y-this.refreshTarget.height/2,this.refreshTarget.width,
+this.refreshTarget.height),h(b,c,l,z));if(y&&null!=t&&!mxEvent.isAltDown(d)&&null==J){g=mxRectangle.fromRectangle(t);if(a.model.isEdge(t.cell)){var n=t.absolutePoints;null!=K.parentNode&&(l=n[0],g.add(h(b,c,new mxRectangle(l.x-this.roundDrop.width/2,l.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),K)));null!=L.parentNode&&(n=n[n.length-1],g.add(h(b,c,new mxRectangle(n.x-this.roundDrop.width/2,n.y-this.roundDrop.height/2,this.roundDrop.width,this.roundDrop.height),L)))}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(b,c,new mxRectangle(t.getCenterX()-this.triangleUp.width/2,l.y-this.triangleUp.height,this.triangleUp.width,this.triangleUp.height),E)),g.add(h(b,c,new mxRectangle(l.x+l.width,t.getCenterY()-this.triangleRight.height/2,this.triangleRight.width,this.triangleRight.height),I)),g.add(h(b,c,new mxRectangle(t.getCenterX()-this.triangleDown.width/2,l.y+l.height,this.triangleDown.width,this.triangleDown.height),B)),g.add(h(b,c,
+new mxRectangle(l.x-this.triangleLeft.width,t.getCenterY()-this.triangleLeft.height/2,this.triangleLeft.width,this.triangleLeft.height),G));null!=g&&g.grow(10)}O=mxConstants.DIRECTION_NORTH;J==I?O=mxConstants.DIRECTION_EAST:J==B||J==L?O=mxConstants.DIRECTION_SOUTH:J==G&&(O=mxConstants.DIRECTION_WEST);null!=w&&J==z&&(k=w);l=(null==m||a.isCellConnectable(e[m]))&&(a.model.isEdge(f)&&null!=m||a.model.isVertex(f)&&a.isCellConnectable(f));if(null!=t&&5E3<=S||t!=k&&(null==g||!mxUtils.contains(g,b,c)||500<
+S&&null==J&&l))if(y=!1,t=5E3>S&&S>this.dropTargetDelay||a.model.isEdge(f)?k:null,null!=t&&l){g=[K,L,E,I,B,G];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(b-g,c-g,2*g,2*g),K.style.left=Math.floor(l.x-this.roundDrop.width/2)+"px",K.style.top=Math.floor(l.y-this.roundDrop.height/2)+"px",L.style.left=Math.floor(n.x-this.roundDrop.width/2)+"px",L.style.top=Math.floor(n.y-
+this.roundDrop.height/2)+"px",null==a.model.getTerminal(f,!0)&&a.container.appendChild(K),null==a.model.getTerminal(f,!1)&&a.container.appendChild(L))):(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",I.style.left=Math.floor(l.x+l.width)+"px",I.style.top=Math.floor(k.getCenterY()-this.triangleRight.height/2)+"px",B.style.left=E.style.left,B.style.top=Math.floor(l.y+
+l.height)+"px",G.style.left=Math.floor(l.x-this.triangleLeft.width)+"px",G.style.top=I.style.top,"eastwest"!=k.style.portConstraint&&(a.container.appendChild(E),a.container.appendChild(B)),a.container.appendChild(I),a.container.appendChild(G));null!=k&&(x=a.selectionCellsHandler.getHandler(k.cell),null!=x&&null!=x.setHandlesVisible&&x.setHandlesVisible(!1));y=!0}else for(g=[K,L,E,I,B,G],l=0;l<g.length;l++)null!=g[l].parentNode&&g[l].parentNode.removeChild(g[l]);y||null==x||x.setHandlesVisible(!0);
+f=mxEvent.isAltDown(d)&&!mxEvent.isShiftDown(d)||null!=w&&J==z?null:mxDragSource.prototype.getDropTarget.apply(this,arguments);g=a.getModel();if(null!=f&&(null!=J||!a.isSplitTarget(f,e,d))){for(;null!=f&&!a.isValidDropTarget(f,e,d)&&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,e,d))&&(f=null)}a.isCellLocked(f)&&(f=null);return f});u.stopDrag=function(){mxDragSource.prototype.stopDrag.apply(this,
arguments);for(var a=[K,L,z,E,I,B,G],b=0;b<a.length;b++)null!=a[b].parentNode&&a[b].parentNode.removeChild(a[b]);null!=t&&null!=x&&x.reset();J=F=w=t=x=null};return u};
Sidebar.prototype.itemClicked=function(a,b,c,e){e=this.editorUi.editor.graph;e.container.focus();if(mxEvent.isAltDown(c)&&1==e.getSelectionCount()&&e.model.isVertex(e.getSelectionCell())){b=null;for(var d=0;d<a.length&&null==b;d++)e.model.isVertex(a[d])&&(b=d);null!=b&&(e.setSelectionCells(this.dropAndConnect(e.getSelectionCell(),a,mxEvent.isMetaDown(c)||mxEvent.isControlDown(c)?mxEvent.isShiftDown(c)?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH:mxEvent.isShiftDown(c)?mxConstants.DIRECTION_EAST:
mxConstants.DIRECTION_SOUTH,b,c)),e.scrollCellToVisible(e.getSelectionCell()))}else mxEvent.isShiftDown(c)&&!e.isSelectionEmpty()?(c=e.getEditableCells(e.getSelectionCells()),this.updateShapes(a[0],c),e.scrollCellToVisible(c)):(a=mxEvent.isAltDown(c)?e.getFreeInsertPoint():e.getCenterInsertPoint(e.getBoundingBoxFromGeometry(a,!0)),b.drop(e,c,null,a.x,a.y,!0))};
Sidebar.prototype.addClickHandler=function(a,b,c){var e=b.mouseDown,d=b.mouseMove,f=b.mouseUp,h=this.editorUi.editor.graph.tolerance,k=null,g=this;b.mouseDown=function(b){e.apply(this,arguments);k=new mxPoint(mxEvent.getClientX(b),mxEvent.getClientY(b));null!=this.dragElement&&(this.dragElement.style.display="none",mxUtils.setOpacity(a,50))};b.mouseMove=function(b){null!=this.dragElement&&"none"==this.dragElement.style.display&&null!=k&&(Math.abs(k.x-mxEvent.getClientX(b))>h||Math.abs(k.y-mxEvent.getClientY(b))>
-h)&&(this.dragElement.style.display="",mxUtils.setOpacity(a,100));d.apply(this,arguments)};b.mouseUp=function(d){try{mxEvent.isPopupTrigger(d)||null!=this.currentGraph||null==this.dragElement||"none"!=this.dragElement.style.display||g.itemClicked(c,b,d,a),f.apply(b,arguments),mxUtils.setOpacity(a,100),k=null,g.currentElt=a}catch(l){b.reset(),g.editorUi.handleError(l)}}};
+h)&&(this.dragElement.style.display="",mxUtils.setOpacity(a,100));d.apply(this,arguments)};b.mouseUp=function(d){try{mxEvent.isPopupTrigger(d)||null!=this.currentGraph||null==this.dragElement||"none"!=this.dragElement.style.display||g.itemClicked(c,b,d,a),f.apply(b,arguments),mxUtils.setOpacity(a,100),k=null,g.currentElt=a}catch(m){b.reset(),g.editorUi.handleError(m)}}};
Sidebar.prototype.createVertexTemplateEntry=function(a,b,c,e,d,f,h,k){null!=k&&null!=d&&(k+=" "+d);k=null!=k&&0<k.length?k:null!=d?d.toLowerCase():"";return this.addEntry(k,mxUtils.bind(this,function(){return this.createVertexTemplate(a,b,c,e,d,f,h)}))};Sidebar.prototype.createVertexTemplate=function(a,b,c,e,d,f,h,k,g){a=[new mxCell(null!=e?e:"",new mxGeometry(0,0,b,c),a)];a[0].vertex=!0;return this.createVertexTemplateFromCells(a,b,c,d,f,h,k,g)};
-Sidebar.prototype.createVertexTemplateFromData=function(a,b,c,e,d,f,h,k){a=mxUtils.parseXml(Graph.decompress(a));var g=new mxCodec(a),m=new mxGraphModel;g.decode(a.documentElement,m);a=this.graph.cloneCells(m.root.getChildAt(0).children);return this.createVertexTemplateFromCells(a,b,c,e,d,f,h,k)};Sidebar.prototype.createVertexTemplateFromCells=function(a,b,c,e,d,f,h,k){return this.createItem(a,e,d,f,b,c,h,k)};
+Sidebar.prototype.createVertexTemplateFromData=function(a,b,c,e,d,f,h,k){a=mxUtils.parseXml(Graph.decompress(a));var g=new mxCodec(a),l=new mxGraphModel;g.decode(a.documentElement,l);a=this.graph.cloneCells(l.root.getChildAt(0).children);return this.createVertexTemplateFromCells(a,b,c,e,d,f,h,k)};Sidebar.prototype.createVertexTemplateFromCells=function(a,b,c,e,d,f,h,k){return this.createItem(a,e,d,f,b,c,h,k)};
Sidebar.prototype.createEdgeTemplateEntry=function(a,b,c,e,d,f,h,k,g){h=null!=h&&0<h.length?h:d.toLowerCase();return this.addEntry(h,mxUtils.bind(this,function(){return this.createEdgeTemplate(a,b,c,e,d,f,k,g)}))};
Sidebar.prototype.createEdgeTemplate=function(a,b,c,e,d,f,h,k){a=new mxCell(null!=e?e:"",new mxGeometry(0,0,b,c),a);a.geometry.setTerminalPoint(new mxPoint(0,c),!0);a.geometry.setTerminalPoint(new mxPoint(b,0),!1);a.geometry.relative=!0;a.edge=!0;return this.createEdgeTemplateFromCells([a],b,c,d,f,h,k)};Sidebar.prototype.createEdgeTemplateFromCells=function(a,b,c,e,d,f,h,k){return this.createItem(a,e,d,null!=k?k:!0,b,c,f,h)};
Sidebar.prototype.addPaletteFunctions=function(a,b,c,e){this.addPalette(a,b,c,mxUtils.bind(this,function(a){for(var b=0;b<e.length;b++)a.appendChild(e[b](a))}))};
@@ -2563,50 +2565,50 @@ Sidebar.prototype.addPalette=function(a,b,c,e){b=this.createTitle(b);this.contai
Sidebar.prototype.addFoldingHandler=function(a,b,c){var e=!1;if(!mxClient.IS_IE||8<=document.documentMode)a.style.backgroundImage="none"==b.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')";a.style.backgroundRepeat="no-repeat";a.style.backgroundPosition="0% 50%";mxEvent.addListener(a,"click",mxUtils.bind(this,function(d){if("none"==b.style.display){if(e)b.style.display="block";else if(e=!0,null!=c){a.style.cursor="wait";var f=a.innerHTML;a.innerHTML=mxResources.get("loading")+
"...";window.setTimeout(function(){b.style.display="block";a.style.cursor="";a.innerHTML=f;var d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;c(b,a);mxClient.NO_FO=d},mxClient.IS_FF?20:0)}else b.style.display="block";a.style.backgroundImage="url('"+this.expandedImage+"')"}else a.style.backgroundImage="url('"+this.collapsedImage+"')",b.style.display="none";mxEvent.consume(d)}));mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}))};
Sidebar.prototype.removePalette=function(a){var b=this.palettes[a];if(null!=b){this.palettes[a]=null;for(a=0;a<b.length;a++)this.container.removeChild(b[a]);return!0}return!1};
-Sidebar.prototype.addImagePalette=function(a,b,c,e,d,f,h){for(var k=[],g=0;g<d.length;g++)mxUtils.bind(this,function(a,b,d){if(null==d){d=a.lastIndexOf("/");var g=a.lastIndexOf(".");d=a.substring(0<=d?d+1:0,0<=g?g:a.length).replace(/[-_]/g," ")}k.push(this.createVertexTemplateEntry("image;html=1;image="+c+a+e,this.defaultImageWidth,this.defaultImageHeight,"",b,null!=b,null,this.filterTags(d)))})(d[g],null!=f?f[g]:null,null!=h?h[d[g]]:null);this.addPaletteFunctions(a,b,!1,k)};
+Sidebar.prototype.addImagePalette=function(a,b,c,e,d,f,h){for(var k=[],g=0;g<d.length;g++)mxUtils.bind(this,function(a,b,d){if(null==d){d=a.lastIndexOf("/");var f=a.lastIndexOf(".");d=a.substring(0<=d?d+1:0,0<=f?f:a.length).replace(/[-_]/g," ")}k.push(this.createVertexTemplateEntry("image;html=1;image="+c+a+e,this.defaultImageWidth,this.defaultImageHeight,"",b,null!=b,null,this.filterTags(d)))})(d[g],null!=f?f[g]:null,null!=h?h[d[g]]:null);this.addPaletteFunctions(a,b,!1,k)};
Sidebar.prototype.getTagsForStencil=function(a,b,c){a=a.split(".");for(var e=1;e<a.length;e++)a[e]=a[e].replace(/_/g," ");a.push(b.replace(/_/g," "));null!=c&&a.push(c);return a.slice(1,a.length)};
-Sidebar.prototype.addStencilPalette=function(a,b,c,e,d,f,h,k,g,m){h=null!=h?h:1;if(this.addStencilsToIndex){var l=[];if(null!=g)for(m=0;m<g.length;m++)l.push(g[m]);mxStencilRegistry.loadStencilSet(c,mxUtils.bind(this,function(a,b,c,g,f){if(null==d||0>mxUtils.indexOf(d,b)){c=this.getTagsForStencil(a,b);var m=null!=k?k[b]:null;null!=m&&c.push(m);l.push(this.createVertexTemplateEntry("shape="+a+b.toLowerCase()+e,Math.round(g*h),Math.round(f*h),"",b.replace(/_/g," "),null,null,this.filterTags(c.join(" "))))}}),
-!0,!0);this.addPaletteFunctions(a,b,!1,l)}else this.addPalette(a,b,!1,mxUtils.bind(this,function(a){null==e&&(e="");null!=f&&f.call(this,a);if(null!=g)for(var b=0;b<g.length;b++)g[b](a);mxStencilRegistry.loadStencilSet(c,mxUtils.bind(this,function(b,c,g,f,k){(null==d||0>mxUtils.indexOf(d,c))&&a.appendChild(this.createVertexTemplate("shape="+b+c.toLowerCase()+e,Math.round(f*h),Math.round(k*h),"",c.replace(/_/g," "),!0))}),!0)}))};
+Sidebar.prototype.addStencilPalette=function(a,b,c,e,d,f,h,k,g,l){h=null!=h?h:1;if(this.addStencilsToIndex){var m=[];if(null!=g)for(l=0;l<g.length;l++)m.push(g[l]);mxStencilRegistry.loadStencilSet(c,mxUtils.bind(this,function(a,b,c,f,g){if(null==d||0>mxUtils.indexOf(d,b)){c=this.getTagsForStencil(a,b);var l=null!=k?k[b]:null;null!=l&&c.push(l);m.push(this.createVertexTemplateEntry("shape="+a+b.toLowerCase()+e,Math.round(f*h),Math.round(g*h),"",b.replace(/_/g," "),null,null,this.filterTags(c.join(" "))))}}),
+!0,!0);this.addPaletteFunctions(a,b,!1,m)}else this.addPalette(a,b,!1,mxUtils.bind(this,function(a){null==e&&(e="");null!=f&&f.call(this,a);if(null!=g)for(var b=0;b<g.length;b++)g[b](a);mxStencilRegistry.loadStencilSet(c,mxUtils.bind(this,function(b,c,f,g,k){(null==d||0>mxUtils.indexOf(d,c))&&a.appendChild(this.createVertexTemplate("shape="+b+c.toLowerCase()+e,Math.round(g*h),Math.round(k*h),"",c.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"]],b=mxUtils.parseXml;mxUtils.parseXml=function(c){for(var e=0;e<a.length;e++)c=c.replace(new RegExp("&"+a[e][0]+";","g"),"&#"+a[e][1]+";");return b(c)}})();
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)},c=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 e=1<arguments.length?arguments[1]:void 0,h;if("undefined"!==typeof e){if(!b(e))throw new TypeError("Array.from: when provided, the second argument must be a function");2<arguments.length&&(h=
-arguments[2])}var k;k=Number(d.length);k=isNaN(k)?0:0!==k&&isFinite(k)?(0<k?1:-1)*Math.floor(Math.abs(k)):k;k=Math.min(Math.max(k,0),c);for(var g=b(this)?Object(new this(k)):Array(k),m=0,l;m<k;)l=d[m],g[m]=e?"undefined"===typeof h?e(l,m):e.call(h,l,m):l,m+=1;g.length=k;return g}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.METERS=4;mxConstants.PIXELS_PER_MM=3.937;mxConstants.PIXELS_PER_INCH=100;mxConstants.SHADOW_OPACITY=.25;mxConstants.SHADOWCOLOR="#000000";
+arguments[2])}var k;k=Number(d.length);k=isNaN(k)?0:0!==k&&isFinite(k)?(0<k?1:-1)*Math.floor(Math.abs(k)):k;k=Math.min(Math.max(k,0),c);for(var g=b(this)?Object(new this(k)):Array(k),l=0,m;l<k;)m=d[l],g[l]=e?"undefined"===typeof h?e(m,l):e.call(h,m,l):m,l+=1;g.length=k;return g}}());mxConstants.POINTS=1;mxConstants.MILLIMETERS=2;mxConstants.INCHES=3;mxConstants.METERS=4;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,c){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,!0),this.clippedImage=a;a=this.clippedSvg}return a};
Graph=function(a,b,c,e,d,f){mxGraph.call(this,a,b,c,e);this.themes=d||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=f?f:!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 h=null,k=null,g=null,m=null,l=!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(),e=this.view.scale;if(!mxEvent.isAltDown(c.getEvent())&&null!=d)if(this.model.isEdge(d.cell))if(h=new mxPoint(c.getGraphX(),c.getGraphY()),l=this.isCellSelected(d.cell),g=d,k=c,null!=d.text&&null!=
-d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,c.getGraphX(),c.getGraphY()))m=mxEvent.LABEL_HANDLE;else{var f=this.selectionCellsHandler.getHandler(d.cell);null!=f&&null!=f.bends&&0<f.bends.length&&(m=f.getHandleForEvent(c))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(c.getEvent())&&(f=this.selectionCellsHandler.getHandler(d.cell),null==f||null==f.getHandleForEvent(c))){var n=new mxRectangle(c.getGraphX()-1,c.getGraphY()-1);n.grow(mxEvent.isTouchEvent(c.getEvent())?mxShape.prototype.svgStrokeTolerance-
-1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(d.cell)&&!this.isCellSelected(d.cell)){var p=this.model.getParent(d.cell),f=this.model.getParent(p);if(!this.isCellSelected(f)){var r=this.getCellGeometry(d.cell),r=null!=r.alternateBounds?r.alternateBounds:r;if(mxUtils.intersects(n,new mxRectangle(d.x,d.y-2,r.width*e,3))&&this.model.getChildAt(f,0)!=p||mxUtils.intersects(n,new mxRectangle(d.x,d.y+r.height-2,r.width,3))||mxUtils.intersects(n,new mxRectangle(d.x-2,d.y,2,r.height*e))&&
-this.model.getChildAt(p,0)!=d.cell||mxUtils.intersects(n,new mxRectangle(d.x+r.width*e-2,d.y,2,r.height*e)))p=this.selectionCellsHandler.isHandled(f),this.selectCellForEvent(f,c.getEvent()),f=this.selectionCellsHandler.getHandler(f),null!=f&&(r=f.getHandleForEvent(c),null!=r&&(f.start(c.getGraphX(),c.getGraphY(),r),f.blockDelayedSelection=!p,c.consume()))}}for(;!c.isConsumed()&&null!=d&&(this.isTableCell(d.cell)||this.isTableRow(d.cell)||this.isTable(d.cell));)this.isSwimlane(d.cell)&&(f=this.getActualStartSize(d.cell),
-(0<f.x||0<f.width)&&mxUtils.intersects(n,new mxRectangle(d.x+(f.x-f.width-1)*e+(0==f.x?d.width:0),d.y,1,d.height))||(0<f.y||0<f.height)&&mxUtils.intersects(n,new mxRectangle(d.x,d.y+(f.y-f.height-1)*e+(0==f.y?d.height:0),d.width,1)))&&(this.selectCellForEvent(d.cell,c.getEvent()),f=this.selectionCellsHandler.getHandler(d.cell),null!=f&&(r=mxEvent.CUSTOM_HANDLE-f.customHandles.length+1,f.start(c.getGraphX(),c.getGraphY(),r),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!=g&&null!=k){if(c=g,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(k);
-var f=this.view.getEdgeStyle(c),n=f==mxEdgeStyle.EntityRelation;l||m!=mxEvent.LABEL_HANDLE||(d=m);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=m,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());l=!1;h=k=g=m=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){m=h=k=g=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==e&&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(),h=0;h<g.width;h++)b.push(new mxRectangle(((g.x+h)*e+d.x)*f,(g.y*c+d.y)*f,e*f,c*f));for(h=1;h<g.height;h++)b.push(new mxRectangle((g.x*e+d.x)*f,((g.y+h)*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,x=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;x.apply(this,arguments);a!=this.currentState?(v=(new Date).getTime(),t=0):t=(new Date).getTime()-v};var w=
-this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<t||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&w.apply(this,arguments)};var y=this.isToggleEvent;this.isToggleEvent=function(a){return y.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var E=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(a){return E.apply(this,
-arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&mxEvent.isTouchEvent(a.getEvent())};var I=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(I=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,
-mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=I)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var B=this.click;this.click=function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!b||a.isConsumed())return B.apply(this,arguments);var c=b?a.sourceState.cell:a.getCell();null!=c&&(c=this.getClickableLinkForCell(c),null!=c&&(this.isCustomLink(c)?
-this.customLinkClicked(c):this.openLink(c)));this.isEnabled()&&b&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};var G=this.tooltipHandler.show;this.tooltipHandler.show=function(){G.apply(this,arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),b=0;b<a.length;b++)null!=a[b].getAttribute("href")&&null==a[b].getAttribute("target")&&a[b].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};
-this.getCursorForMouseEvent=function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(b?a.sourceState.cell:a.getCell())};var z=this.getCursorForCell;this.getCursorForCell=function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return z.apply(this,arguments)};this.selectRegion=function(a,b){var c=mxEvent.isAltDown(b)?a:null,c=this.getCells(a.x,
-a.y,a.width,a.height,null,null,c,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);if(this.isToggleEvent(b))for(var d=0;d<c.length;d++)this.selectCellForEvent(c[d],b);else this.selectCellsForEvent(c,b);return c};var F=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:F.apply(this,arguments)};this.isCellLocked=function(a){for(;null!=a;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(a),
-"locked","0"))return!0;a=this.model.getParent(a)}return!1};var K=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();K=null==c||this.isSelectionEmpty()||this.isCellSelected(c.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,b){if(!mxEvent.isMultiTouchEvent(b)){var c=b.getProperty("event"),d=b.getProperty("cell");null==d?(c=mxUtils.convertPoint(this.container,
-mxEvent.getClientX(c),mxEvent.getClientY(c)),u.start(c.x,c.y)):null!=K?this.addSelectionCells(K):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);K=null;b.consume()}}));this.connectionHandler.selectCells=function(a,b){this.graph.setSelectionCell(b||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,b){var c=a.view.graph;return b&&(c.isCellSelected(a.cell)||c.isTableRow(a.cell)&&c.selectionCellsHandler.isHandled(c.model.getParent(a.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,
-mxUtils.bind(this,function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var L=this.updateMouseEvent;this.updateMouseEvent=function(a){a=L.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};
-Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.translateDiagram="1"==urlParams["translate-diagram"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;
-Graph.defaultJumpSize=6;Graph.zoomWheel=!1;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.xmlDeclaration='<?xml version="1.0" encoding="UTF-8"?>';Graph.svgDoctype='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';Graph.svgFileComment="\x3c!-- Do not edit this file with editors other than diagrams.net --\x3e";
-Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
+return null!=a?"1"==a.html||"wrap"==a[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var h=null,k=null,g=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(),e=this.view.scale;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),g=d,k=c,null!=d.text&&null!=
+d.text.boundingBox&&mxUtils.contains(d.text.boundingBox,c.getGraphX(),c.getGraphY()))l=mxEvent.LABEL_HANDLE;else{var f=this.selectionCellsHandler.getHandler(d.cell);null!=f&&null!=f.bends&&0<f.bends.length&&(l=f.getHandleForEvent(c))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(c.getEvent())&&(f=this.selectionCellsHandler.getHandler(d.cell),null==f||null==f.getHandleForEvent(c))){var n=new mxRectangle(c.getGraphX()-1,c.getGraphY()-1),f=mxEvent.isTouchEvent(c.getEvent())?mxShape.prototype.svgStrokeTolerance-
+1:(mxShape.prototype.svgStrokeTolerance+1)/2;n.grow(f);if(this.isTableCell(d.cell)&&!this.isCellSelected(d.cell)&&!(mxUtils.contains(d,c.getGraphX()-f,c.getGraphY()-f)&&mxUtils.contains(d,c.getGraphX()-f,c.getGraphY()+f)&&mxUtils.contains(d,c.getGraphX()+f,c.getGraphY()+f)&&mxUtils.contains(d,c.getGraphX()+f,c.getGraphY()-f))){var p=this.model.getParent(d.cell),f=this.model.getParent(p);if(!this.isCellSelected(f)){var r=this.getCellGeometry(d.cell),r=null!=r.alternateBounds?r.alternateBounds:r;if(mxUtils.intersects(n,
+new mxRectangle(d.x,d.y-2,r.width*e,3))&&this.model.getChildAt(f,0)!=p||mxUtils.intersects(n,new mxRectangle(d.x,d.y+r.height-2,r.width,3))||mxUtils.intersects(n,new mxRectangle(d.x-2,d.y,2,r.height*e))&&this.model.getChildAt(p,0)!=d.cell||mxUtils.intersects(n,new mxRectangle(d.x+r.width*e-2,d.y,2,r.height*e)))p=this.selectionCellsHandler.isHandled(f),this.selectCellForEvent(f,c.getEvent()),f=this.selectionCellsHandler.getHandler(f),null!=f&&(r=f.getHandleForEvent(c),null!=r&&(f.start(c.getGraphX(),
+c.getGraphY(),r),f.blockDelayedSelection=!p,c.consume()))}}for(;!c.isConsumed()&&null!=d&&(this.isTableCell(d.cell)||this.isTableRow(d.cell)||this.isTable(d.cell));)this.isSwimlane(d.cell)&&(f=this.getActualStartSize(d.cell),(0<f.x||0<f.width)&&mxUtils.intersects(n,new mxRectangle(d.x+(f.x-f.width-1)*e+(0==f.x?d.width:0),d.y,1,d.height))||(0<f.y||0<f.height)&&mxUtils.intersects(n,new mxRectangle(d.x,d.y+(f.y-f.height-1)*e+(0==f.y?d.height:0),d.width,1)))&&(this.selectCellForEvent(d.cell,c.getEvent()),
+f=this.selectionCellsHandler.getHandler(d.cell),null!=f&&(r=mxEvent.CUSTOM_HANDLE-f.customHandles.length+1,f.start(c.getGraphX(),c.getGraphY(),r),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())){var e=this.tolerance;
+if(null!=h&&null!=g&&null!=k){if(c=g,Math.abs(h.x-b.getGraphX())>e||Math.abs(h.y-b.getGraphY())>e){var f=this.selectionCellsHandler.getHandler(c.cell);null==f&&this.model.isEdge(c.cell)&&(f=this.createHandler(c));if(null!=f&&null!=f.bends&&0<f.bends.length){d=f.getHandleForEvent(k);var n=this.view.getEdgeStyle(c),e=n==mxEdgeStyle.EntityRelation;m||l!=mxEvent.LABEL_HANDLE||(d=l);if(e&&0!=d&&d!=f.bends.length-1&&d!=mxEvent.LABEL_HANDLE)!e||null==c.visibleSourceState&&null==c.visibleTargetState||(this.graphHandler.reset(),
+b.consume());else if(d==mxEvent.LABEL_HANDLE||0==d||null!=c.visibleSourceState||d==f.bends.length-1||null!=c.visibleTargetState)e||d==mxEvent.LABEL_HANDLE||(e=c.absolutePoints,null!=e&&(null==n&&null==d||n==mxEdgeStyle.OrthConnector)&&(d=l,null==d&&(d=new mxRectangle(h.x,h.y),d.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(d,e[0].x,e[0].y)?d=0:mxUtils.contains(d,e[e.length-1].x,e[e.length-1].y)?d=f.bends.length-1:null!=n&&(2==e.length||3==e.length&&(0==Math.round(e[0].x-e[1].x)&&
+0==Math.round(e[1].x-e[2].x)||0==Math.round(e[0].y-e[1].y)&&0==Math.round(e[1].y-e[2].y)))?d=2:(d=mxUtils.findNearestSegment(c,h.x,h.y),d=null==n?mxEvent.VIRTUAL_HANDLE-d:d+1))),null==d&&(d=mxEvent.VIRTUAL_HANDLE)),f.start(b.getGraphX(),b.getGraphX(),d),b.consume(),this.graphHandler.reset()}null!=f&&(this.selectionCellsHandler.isHandlerActive(f)?this.isCellSelected(c.cell)||(this.selectionCellsHandler.handlers.put(c.cell,f),this.selectCellForEvent(c.cell,b.getEvent())):this.isCellSelected(c.cell)||
+f.destroy());m=!1;h=k=g=l=null}}else if(c=b.getState(),null!=c&&this.isCellEditable(c.cell)){f=null;if(this.model.isEdge(c.cell)){if(d=new mxRectangle(b.getGraphX(),b.getGraphY()),d.grow(mxEdgeHandler.prototype.handleImage.width/2),e=c.absolutePoints,null!=e)if(null!=c.text&&null!=c.text.boundingBox&&mxUtils.contains(c.text.boundingBox,b.getGraphX(),b.getGraphY()))f="move";else if(mxUtils.contains(d,e[0].x,e[0].y)||mxUtils.contains(d,e[e.length-1].x,e[e.length-1].y))f="pointer";else if(null!=c.visibleSourceState||
+null!=c.visibleTargetState)d=this.view.getEdgeStyle(c),f="crosshair",d!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(c)&&(d=mxUtils.findNearestSegment(c,b.getGraphX(),b.getGraphY()),d<e.length-1&&0<=d&&(f=0==Math.round(e[d].x-e[d+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(b.getEvent())){e=mxShape.prototype.svgStrokeTolerance/2;d=new mxRectangle(b.getGraphX()-1,b.getGraphY()-1);d.grow(e);if(this.isTableCell(c.cell)&&(e=this.model.getParent(c.cell),n=this.model.getParent(e),!this.isCellSelected(n)))if(mxUtils.intersects(d,
+new mxRectangle(c.x-2,c.y,4,c.height))&&this.model.getChildAt(e,0)!=c.cell||mxUtils.intersects(d,new mxRectangle(c.x+c.width-2,c.y,4,c.height)))f="col-resize";else if(mxUtils.intersects(d,new mxRectangle(c.x,c.y-2,c.width,4))&&this.model.getChildAt(n,0)!=e||mxUtils.intersects(d,new mxRectangle(c.x,c.y+c.height-2,c.width,4)))f="row-resize";for(e=c;null==f&&null!=e&&(this.isTableCell(e.cell)||this.isTableRow(e.cell)||this.isTable(e.cell));){if(this.isSwimlane(e.cell)){var n=this.getActualStartSize(e.cell),
+p=this.view.scale;(0<n.x||0<n.width)&&mxUtils.intersects(d,new mxRectangle(e.x+(n.x-n.width-1)*p+(0==n.x?e.width*p:0),e.y,1,e.height))?f="col-resize":(0<n.y||0<n.height)&&mxUtils.intersects(d,new mxRectangle(e.x,e.y+(n.y-n.height-1)*p+(0==n.y?e.height:0),e.width,1))&&(f="row-resize")}e=this.view.getState(this.model.getParent(e.cell))}}null!=f&&c.setCursor(f)}}}),mouseUp:mxUtils.bind(this,function(a,b){l=h=k=g=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==e&&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(),
+h=0;h<g.width;h++)b.push(new mxRectangle(((g.x+h)*e+d.x)*f,(g.y*c+d.y)*f,e*f,c*f));for(h=1;h<g.height;h++)b.push(new mxRectangle((g.x*e+d.x)*f,((g.y+h)*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,x=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var a=this.currentState;x.apply(this,arguments);a!=this.currentState?(v=(new Date).getTime(),t=0):t=(new Date).getTime()-v};var w=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(a){return null!=this.currentState&&a.getState()==this.currentState&&2E3<t||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
+"outlineConnect","1"))&&w.apply(this,arguments)};var y=this.isToggleEvent;this.isToggleEvent=function(a){return y.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a)};var E=u.isForceRubberbandEvent;u.isForceRubberbandEvent=function(a){return E.apply(this,arguments)&&!mxEvent.isShiftDown(a.getEvent())&&!mxEvent.isControlDown(a.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(a.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==a.getState()&&
+mxEvent.isTouchEvent(a.getEvent())};var I=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(I=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=I)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(a){return mxEvent.isMouseEvent(a.getEvent())};var B=this.click;this.click=
+function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);if(this.isEnabled()&&!b||a.isConsumed())return B.apply(this,arguments);var c=b?a.sourceState.cell:a.getCell();null!=c&&(c=this.getClickableLinkForCell(c),null!=c&&(this.isCustomLink(c)?this.customLinkClicked(c):this.openLink(c)));this.isEnabled()&&b&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};var G=this.tooltipHandler.show;this.tooltipHandler.show=function(){G.apply(this,
+arguments);if(null!=this.div)for(var a=this.div.getElementsByTagName("a"),b=0;b<a.length;b++)null!=a[b].getAttribute("href")&&null==a[b].getAttribute("target")&&a[b].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(a){return a.sourceState};this.getCursorForMouseEvent=function(a){var b=null==a.state&&null!=a.sourceState&&this.isCellLocked(a.sourceState.cell);return this.getCursorForCell(b?a.sourceState.cell:a.getCell())};var z=this.getCursorForCell;this.getCursorForCell=
+function(a){if(!this.isEnabled()||this.isCellLocked(a)){if(null!=this.getClickableLinkForCell(a))return"pointer";if(this.isCellLocked(a))return"default"}return z.apply(this,arguments)};this.selectRegion=function(a,b){var c=mxEvent.isAltDown(b)?a:null,c=this.getCells(a.x,a.y,a.width,a.height,null,null,c,function(a){return"1"==mxUtils.getValue(a.style,"locked","0")},!0);if(this.isToggleEvent(b))for(var d=0;d<c.length;d++)this.selectCellForEvent(c[d],b);else this.selectCellsForEvent(c,b);return c};var F=
+this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(a,b,c){return this.graph.isCellSelected(a)?!1:F.apply(this,arguments)};this.isCellLocked=function(a){for(;null!=a;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(a),"locked","0"))return!0;a=this.model.getParent(a)}return!1};var K=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(a,b){if("mouseDown"==b.getProperty("eventName")){var c=b.getProperty("event").getState();K=null==
+c||this.isSelectionEmpty()||this.isCellSelected(c.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(a,b){if(!mxEvent.isMultiTouchEvent(b)){var c=b.getProperty("event"),d=b.getProperty("cell");null==d?(c=mxUtils.convertPoint(this.container,mxEvent.getClientX(c),mxEvent.getClientY(c)),u.start(c.x,c.y)):null!=K?this.addSelectionCells(K):1<this.getSelectionCount()&&this.isCellSelected(d)&&this.removeSelectionCell(d);K=null;b.consume()}}));this.connectionHandler.selectCells=
+function(a,b){this.graph.setSelectionCell(b||a)};this.connectionHandler.constraintHandler.isStateIgnored=function(a,b){var c=a.view.graph;return b&&(c.isCellSelected(a.cell)||c.isTableRow(a.cell)&&c.selectionCellsHandler.isHandled(c.model.getParent(a.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var a=this.connectionHandler.constraintHandler;null!=a.currentFocus&&a.isStateIgnored(a.currentFocus,!0)&&(a.currentFocus=null,a.constraints=null,a.destroyIcons());a.destroyFocusHighlight()}));
+Graph.touchStyle&&this.initTouch();var L=this.updateMouseEvent;this.updateMouseEvent=function(a){a=L.apply(this,arguments);null!=a.state&&this.isCellLocked(a.getCell())&&(a.state=null);return a}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;
+Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.translateDiagram="1"==urlParams["translate-diagram"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;Graph.zoomWheel=!1;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";
+Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.xmlDeclaration='<?xml version="1.0" encoding="UTF-8"?>';Graph.svgDoctype='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';Graph.svgFileComment="\x3c!-- Do not edit this file with editors other than diagrams.net --\x3e";Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
Graph.createOffscreenGraph=function(a){var b=new Graph(document.createElement("div"));b.stylesheet.styles=mxUtils.clone(a.styles);b.resetViewOnRootChange=!1;b.setConnectable(!1);b.gridEnabled=!1;b.autoScroll=!1;b.setTooltips(!1);b.setEnabled(!1);b.container.style.visibility="hidden";b.container.style.position="absolute";b.container.style.overflow="hidden";b.container.style.height="1px";b.container.style.width="1px";return b};
Graph.createSvgImage=function(a,b,c,e,d){c=unescape(encodeURIComponent(Graph.svgDoctype+'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a+'px" height="'+b+'px" '+(null!=e&&null!=d?'viewBox="0 0 '+e+" "+d+'" ':"")+'version="1.1">'+c+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(c):Base64.encode(c,!0)),a,b)};
Graph.zapGremlins=function(a){for(var b=0,c=[],e=0;e<a.length;e++){var d=a.charCodeAt(e);(32<=d||9==d||10==d||13==d)&&65535!=d&&65534!=d||(c.push(a.substring(b,e)),b=e+1)}0<b&&b<a.length&&c.push(a.substring(b));return 0==c.length?a:c.join("")};Graph.stringToBytes=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=a.charCodeAt(c);return b};Graph.bytesToString=function(a){for(var b=Array(a.length),c=0;c<a.length;c++)b[c]=String.fromCharCode(a[c]);return b.join("")};
@@ -2619,15 +2621,15 @@ Graph.setTransitionForNodes=function(a,b){for(var c=0;c<a.length;c++)mxUtils.set
Graph.sanitizeHtml=function(a,b){return html_sanitize(a,function(a){return null!=a&&"javascript:"!==a.toString().toLowerCase().substring(0,11)?a:null},function(a){return a})};
Graph.sanitizeSvg=function(a){function b(b){for(b=a.getElementsByTagName(b);0<b.length;)b[0].parentNode.removeChild(b[0])}for(var c=a.getElementsByTagName("*"),e=0;e<c.length;e++)for(var d=0;d<c[e].attributes.length;d++){var f=c[e].attributes[d];2<f.name.length&&"on"==f.name.toLowerCase().substring(0,2)&&c[e].removeAttribute(f.name)}b("meta");b("script");b("metadata")};
Graph.clipSvgDataUri=function(a,b){if(!mxClient.IS_IE&&!mxClient.IS_IE11&&null!=a&&"data:image/svg+xml;base64,"==a.substring(0,26))try{var c=document.createElement("div");c.style.position="absolute";c.style.visibility="hidden";var e=decodeURIComponent(escape(atob(a.substring(26)))),d=e.indexOf("<svg");if(0<=d){c.innerHTML=e.substring(d);Graph.sanitizeSvg(c);var f=c.getElementsByTagName("svg");if(0<f.length){if(b||null!=f[0].getAttribute("preserveAspectRatio")){document.body.appendChild(c);try{var d=
-e=1,h=f[0].getAttribute("width"),k=f[0].getAttribute("height"),h=null!=h&&"%"!=h.charAt(h.length-1)?parseFloat(h):NaN,k=null!=k&&"%"!=k.charAt(k.length-1)?parseFloat(k):NaN,g=f[0].getAttribute("viewBox");if(null!=g&&!isNaN(h)&&!isNaN(k)){var m=g.split(" ");4<=g.length&&(e=parseFloat(m[2])/h,d=parseFloat(m[3])/k)}var l=f[0].getBBox();0<l.width&&0<l.height&&(c.getElementsByTagName("svg")[0].setAttribute("viewBox",l.x+" "+l.y+" "+l.width+" "+l.height),c.getElementsByTagName("svg")[0].setAttribute("width",
-l.width/e),c.getElementsByTagName("svg")[0].setAttribute("height",l.height/d))}catch(n){}finally{document.body.removeChild(c)}}a=Editor.createSvgDataUri(mxUtils.getXml(f[0]))}}}catch(n){}return a};Graph.stripQuotes=function(a){null!=a&&("'"==a.charAt(0)&&(a=a.substring(1)),"'"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)),'"'==a.charAt(0)&&(a=a.substring(1)),'"'==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)));return a};
+e=1,h=f[0].getAttribute("width"),k=f[0].getAttribute("height"),h=null!=h&&"%"!=h.charAt(h.length-1)?parseFloat(h):NaN,k=null!=k&&"%"!=k.charAt(k.length-1)?parseFloat(k):NaN,g=f[0].getAttribute("viewBox");if(null!=g&&!isNaN(h)&&!isNaN(k)){var l=g.split(" ");4<=g.length&&(e=parseFloat(l[2])/h,d=parseFloat(l[3])/k)}var m=f[0].getBBox();0<m.width&&0<m.height&&(c.getElementsByTagName("svg")[0].setAttribute("viewBox",m.x+" "+m.y+" "+m.width+" "+m.height),c.getElementsByTagName("svg")[0].setAttribute("width",
+m.width/e),c.getElementsByTagName("svg")[0].setAttribute("height",m.height/d))}catch(n){}finally{document.body.removeChild(c)}}a=Editor.createSvgDataUri(mxUtils.getXml(f[0]))}}}catch(n){}return a};Graph.stripQuotes=function(a){null!=a&&("'"==a.charAt(0)&&(a=a.substring(1)),"'"==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)),'"'==a.charAt(0)&&(a=a.substring(1)),'"'==a.charAt(a.length-1)&&(a=a.substring(0,a.length-1)));return a};
Graph.createRemoveIcon=function(a,b){var c=document.createElement("img");c.setAttribute("src",Dialog.prototype.clearImage);c.setAttribute("title",a);c.setAttribute("width","13");c.setAttribute("height","10");c.style.marginLeft="4px";c.style.marginBottom="-1px";c.style.cursor="pointer";mxEvent.addListener(c,"click",b);return c};Graph.isPageLink=function(a){return null!=a&&"data:page/id,"==a.substring(0,13)};Graph.isLink=function(a){return null!=a&&Graph.linkPattern.test(a)};Graph.linkPattern=/^(https?:\/\/)?((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|((\d{1,3}\.){3}\d{1,3}))(\:\d+)?(\/[-a-z\d%_.~+]*)*(\?[;&a-z\d%_.~+=-]*)?(\#[-a-z\d_]*)?$/i;
mxUtils.extend(Graph,mxGraph);Graph.prototype.minFitScale=null;Graph.prototype.maxFitScale=null;Graph.prototype.linkPolicy="frame"==urlParams.target?"blank":urlParams.target||"auto";Graph.prototype.linkTarget="frame"==urlParams.target?"_self":"_blank";Graph.prototype.linkRelation="nofollow noopener noreferrer";Graph.prototype.defaultScrollbars=!mxClient.IS_IOS;Graph.prototype.defaultPageVisible=!0;Graph.prototype.defaultGridEnabled="0"!=urlParams.grid;Graph.prototype.lightbox=!1;
Graph.prototype.defaultPageBackgroundColor="#ffffff";Graph.prototype.defaultPageBorderColor="#ffffff";Graph.prototype.shapeForegroundColor="#000000";Graph.prototype.shapeBackgroundColor="#ffffff";Graph.prototype.scrollTileSize=new mxRectangle(0,0,400,400);Graph.prototype.transparentBackground=!0;Graph.prototype.selectParentAfterDelete=!1;Graph.prototype.defaultEdgeLength=80;Graph.prototype.edgeMode=!1;Graph.prototype.connectionArrowsEnabled=!0;
Graph.prototype.placeholderPattern=RegExp("%(date{.*}|[^%^{^}^ ^\"^ '^=^;]+)%","g");Graph.prototype.absoluteUrlPattern=/^(?:[a-z]+:)?\/\//i;Graph.prototype.defaultThemeName="default";Graph.prototype.defaultThemes={};Graph.prototype.baseUrl=null!=urlParams.base?decodeURIComponent(urlParams.base):(window!=window.top?document.referrer:document.location.toString()).split("#")[0];Graph.prototype.editAfterInsert=!1;Graph.prototype.builtInProperties=["label","tooltip","placeholders","placeholder"];
Graph.prototype.standalone=!1;Graph.prototype.enableFlowAnimation=!1;Graph.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(" ");
-Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,b){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var c=a.view.graph.tolerance,e=!0,h=null,k=mxUtils.bind(this,function(a){e=!0;h=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),g=mxUtils.bind(this,function(a){e=e&&null!=h&&Math.abs(h.x-mxEvent.getClientX(a))<c&&Math.abs(h.y-mxEvent.getClientY(a))<c}),m=mxUtils.bind(this,function(c){if(e)for(var d=mxEvent.getSource(c);null!=
-d&&d!=b.node;){if("a"==d.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,d,c);break}d=d.parentNode}});mxEvent.addGestureListeners(b.node,k,g,m);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!=
+Graph.prototype.init=function(a){mxGraph.prototype.init.apply(this,arguments);this.cellRenderer.initializeLabel=function(a,b){mxCellRenderer.prototype.initializeLabel.apply(this,arguments);var c=a.view.graph.tolerance,e=!0,h=null,k=mxUtils.bind(this,function(a){e=!0;h=new mxPoint(mxEvent.getClientX(a),mxEvent.getClientY(a))}),g=mxUtils.bind(this,function(a){e=e&&null!=h&&Math.abs(h.x-mxEvent.getClientX(a))<c&&Math.abs(h.y-mxEvent.getClientY(a))<c}),l=mxUtils.bind(this,function(c){if(e)for(var d=mxEvent.getSource(c);null!=
+d&&d!=b.node;){if("a"==d.nodeName.toLowerCase()){a.view.graph.labelLinkClicked(a,d,c);break}d=d.parentNode}});mxEvent.addGestureListeners(b.node,k,g,l);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 c=this.flowAnimationStyle.getAttribute("id");this.flowAnimationStyle.innerHTML=this.getFlowAnimationStyleCss(c)}}));this.initLayoutManager()};
(function(){Graph.prototype.useCssTransforms=!1;Graph.prototype.currentScale=1;Graph.prototype.currentTranslate=new mxPoint(0,0);Graph.prototype.isFillState=function(a){return!this.isSpecialColor(a.style[mxConstants.STYLE_FILLCOLOR])&&(this.model.isVertex(a.cell)||"arrow"==mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null)||"filledEdge"==mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null)||"flexArrow"==mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null))};Graph.prototype.isStrokeState=function(a){return!this.isSpecialColor(a.style[mxConstants.STYLE_STROKECOLOR])};
Graph.prototype.isSpecialColor=function(a){return 0<=mxUtils.indexOf([mxConstants.STYLE_STROKECOLOR,mxConstants.STYLE_FILLCOLOR,"inherit","swimlane","indicated"],a)};Graph.prototype.isGlassState=function(a){a=mxUtils.getValue(a.style,mxConstants.STYLE_SHAPE,null);return"label"==a||"rectangle"==a||"internalStorage"==a||"ext"==a||"umlLifeline"==a||"swimlane"==a||"process"==a};Graph.prototype.isRoundedState=function(a){return null!=a.shape?a.shape.isRoundable():0<=mxUtils.indexOf(this.roundableShapes,
@@ -2656,8 +2658,8 @@ mxUtils.getValue(c,"parentPadding",20),e.maintainParentLocation=!0,e.intraCellSp
e;if("circleLayout"==c.childLayout)return new mxCircleLayout(this.graph);if("organicLayout"==c.childLayout)return new mxFastOrganicLayout(this.graph);if("tableLayout"==c.childLayout)return new TableLayout(this.graph)}return null}};Graph.prototype.getDataForCells=function(a){for(var b=[],c=0;c<a.length;c++){var e=null!=a[c].value?a[c].value.attributes:null,d={};d.id=a[c].id;if(null!=e)for(var f=0;f<e.length;f++)d[e[f].nodeName]=e[f].nodeValue;else d.label=this.convertValueToString(a[c]);b.push(d)}return b};
Graph.prototype.getNodesForCells=function(a){for(var b=[],c=0;c<a.length;c++){var e=this.view.getState(a[c]);if(null!=e){for(var d=this.cellRenderer.getShapesForState(e),f=0;f<d.length;f++)null!=d[f]&&null!=d[f].node&&b.push(d[f].node);null!=e.control&&null!=e.control.node&&b.push(e.control.node)}}return b};
Graph.prototype.createWipeAnimations=function(a,b){for(var c=[],e=0;e<a.length;e++){var d=this.view.getState(a[e]);null!=d&&null!=d.shape&&(this.model.isEdge(d.cell)&&null!=d.absolutePoints&&1<d.absolutePoints.length?c.push(this.createEdgeWipeAnimation(d,b)):this.model.isVertex(d.cell)&&null!=d.shape.bounds&&c.push(this.createVertexWipeAnimation(d,b)))}return c};
-Graph.prototype.createEdgeWipeAnimation=function(a,b){var c=a.absolutePoints.slice(),e=a.segments,d=a.length,f=c.length;return{execute:mxUtils.bind(this,function(h,k){if(null!=a.shape){var g=[c[0]],m=h/k;b||(m=1-m);for(var l=d*m,n=1;n<f;n++)if(l<=e[n-1]){g.push(new mxPoint(c[n-1].x+(c[n].x-c[n-1].x)*l/e[n-1],c[n-1].y+(c[n].y-c[n-1].y)*l/e[n-1]));break}else l-=e[n-1],g.push(c[n]);a.shape.points=g;a.shape.redraw();0==h&&Graph.setOpacityForNodes(this.getNodesForCells([a.cell]),1);null!=a.text&&null!=
-a.text.node&&(a.text.node.style.opacity=m)}}),stop:mxUtils.bind(this,function(){null!=a.shape&&(a.shape.points=c,a.shape.redraw(),null!=a.text&&null!=a.text.node&&(a.text.node.style.opacity=""),Graph.setOpacityForNodes(this.getNodesForCells([a.cell]),b?1:0))})}};
+Graph.prototype.createEdgeWipeAnimation=function(a,b){var c=a.absolutePoints.slice(),e=a.segments,d=a.length,f=c.length;return{execute:mxUtils.bind(this,function(h,k){if(null!=a.shape){var g=[c[0]],l=h/k;b||(l=1-l);for(var m=d*l,n=1;n<f;n++)if(m<=e[n-1]){g.push(new mxPoint(c[n-1].x+(c[n].x-c[n-1].x)*m/e[n-1],c[n-1].y+(c[n].y-c[n-1].y)*m/e[n-1]));break}else m-=e[n-1],g.push(c[n]);a.shape.points=g;a.shape.redraw();0==h&&Graph.setOpacityForNodes(this.getNodesForCells([a.cell]),1);null!=a.text&&null!=
+a.text.node&&(a.text.node.style.opacity=l)}}),stop:mxUtils.bind(this,function(){null!=a.shape&&(a.shape.points=c,a.shape.redraw(),null!=a.text&&null!=a.text.node&&(a.text.node.style.opacity=""),Graph.setOpacityForNodes(this.getNodesForCells([a.cell]),b?1:0))})}};
Graph.prototype.createVertexWipeAnimation=function(a,b){var c=new mxRectangle.fromRectangle(a.shape.bounds);return{execute:mxUtils.bind(this,function(e,d){if(null!=a.shape){var f=e/d;b||(f=1-f);a.shape.bounds=new mxRectangle(c.x,c.y,c.width*f,c.height);a.shape.redraw();0==e&&Graph.setOpacityForNodes(this.getNodesForCells([a.cell]),1);null!=a.text&&null!=a.text.node&&(a.text.node.style.opacity=f)}}),stop:mxUtils.bind(this,function(){null!=a.shape&&(a.shape.bounds=c,a.shape.redraw(),null!=a.text&&null!=
a.text.node&&(a.text.node.style.opacity=""),Graph.setOpacityForNodes(this.getNodesForCells([a.cell]),b?1:0))})}};Graph.prototype.executeAnimations=function(a,b,c,e){c=null!=c?c:30;e=null!=e?e:30;var d=null,f=0,h=mxUtils.bind(this,function(){if(f==c||this.stoppingCustomActions){window.clearInterval(d);for(var e=0;e<a.length;e++)a[e].stop();null!=b&&b()}else for(e=0;e<a.length;e++)a[e].execute(f,c);f++}),d=window.setInterval(h,e);h()};
Graph.prototype.getPageSize=function(){return this.pageVisible?new mxRectangle(0,0,this.pageFormat.width*this.pageScale,this.pageFormat.height*this.pageScale):this.scrollTileSize};
@@ -2670,22 +2672,22 @@ Graph.prototype.setGridSize=function(a){this.gridSize=a;this.fireEvent(new mxEve
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,c){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 e=this.dateFormatCache,d=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,f=/[^-+\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)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(e.masks[b]||b||e.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),c=!0);var k=c?"getUTC":"get",g=a[k+"Date"](),m=a[k+"Day"](),l=a[k+"Month"](),n=a[k+"FullYear"](),p=a[k+"Hours"](),r=a[k+"Minutes"](),u=a[k+"Seconds"](),k=a[k+"Milliseconds"](),v=c?0:a.getTimezoneOffset(),t={d:g,dd:h(g),ddd:e.i18n.dayNames[m],dddd:e.i18n.dayNames[m+7],m:l+1,mm:h(l+1),mmm:e.i18n.monthNames[l],mmmm:e.i18n.monthNames[l+
+/\d/.test(a)||(b=a,a=void 0);a=a?new Date(a):new Date;if(isNaN(a))throw SyntaxError("invalid date");b=String(e.masks[b]||b||e.masks["default"]);"UTC:"==b.slice(0,4)&&(b=b.slice(4),c=!0);var k=c?"getUTC":"get",g=a[k+"Date"](),l=a[k+"Day"](),m=a[k+"Month"](),n=a[k+"FullYear"](),p=a[k+"Hours"](),r=a[k+"Minutes"](),u=a[k+"Seconds"](),k=a[k+"Milliseconds"](),v=c?0:a.getTimezoneOffset(),t={d:g,dd:h(g),ddd:e.i18n.dayNames[l],dddd:e.i18n.dayNames[l+7],m:m+1,mm:h(m+1),mmm:e.i18n.monthNames[m],mmmm:e.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(k,3),L:h(99<k?Math.round(k/10):k),t:12>p?"a":"p",tt:12>p?"am":"pm",T:12>p?"A":"P",TT:12>p?"AM":"PM",Z:c?"UTC":(String(a).match(d)||[""]).pop().replace(f,""),o:(0<v?"-":"+")+h(100*Math.floor(Math.abs(v)/60)+Math.abs(v)%60,4),S:["th","st","nd","rd"][3<g%10?0:(10!=g%100-g%10)*g%10]};return b.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 b=null;if(0<a.length){for(b=a[0];!this.model.isLayer(b);)b=this.model.getParent(b);for(var c=1;c<a.length;c++)if(!this.model.isAncestor(b,a[c])){b=null;break}}return b};
-Graph.prototype.createLayersDialog=function(a,b){var c=document.createElement("div");c.style.position="absolute";for(var e=this.getModel(),d=e.getChildCount(e.root),f=0;f<d;f++)mxUtils.bind(this,function(d){function f(){e.isVisible(d)?(l.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(h,75)):(l.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(h,25))}var g=this.convertValueToString(d)||mxResources.get("background")||"Background",h=document.createElement("div");h.style.overflow=
-"hidden";h.style.textOverflow="ellipsis";h.style.padding="2px";h.style.whiteSpace="nowrap";h.style.cursor="pointer";h.setAttribute("title",mxResources.get(e.isVisible(d)?"hideIt":"show",[g]));var l=document.createElement("img");l.setAttribute("draggable","false");l.setAttribute("align","absmiddle");l.setAttribute("border","0");l.style.position="relative";l.style.width="16px";l.style.padding="0px 6px 0 4px";b&&(l.style.filter="invert(100%)",l.style.top="-2px");h.appendChild(l);mxUtils.write(h,g);c.appendChild(h);
+Graph.prototype.createLayersDialog=function(a,b){var c=document.createElement("div");c.style.position="absolute";for(var e=this.getModel(),d=e.getChildCount(e.root),f=0;f<d;f++)mxUtils.bind(this,function(d){function f(){e.isVisible(d)?(m.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(h,75)):(m.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(h,25))}var g=this.convertValueToString(d)||mxResources.get("background")||"Background",h=document.createElement("div");h.style.overflow=
+"hidden";h.style.textOverflow="ellipsis";h.style.padding="2px";h.style.whiteSpace="nowrap";h.style.cursor="pointer";h.setAttribute("title",mxResources.get(e.isVisible(d)?"hideIt":"show",[g]));var m=document.createElement("img");m.setAttribute("draggable","false");m.setAttribute("align","absmiddle");m.setAttribute("border","0");m.style.position="relative";m.style.width="16px";m.style.padding="0px 6px 0 4px";b&&(m.style.filter="invert(100%)",m.style.top="-2px");h.appendChild(m);mxUtils.write(h,g);c.appendChild(h);
mxEvent.addListener(h,"click",function(){e.setVisible(d,!e.isVisible(d));f();null!=a&&a(d)});f()})(e.getChildAt(e.root,f));return c};
Graph.prototype.replacePlaceholders=function(a,b,c,e){e=[];if(null!=b){for(var d=0;match=this.placeholderPattern.exec(b);){var f=match[0];if(2<f.length&&"%label%"!=f&&"%tooltip%"!=f){var h=null;if(match.index>d&&"%"==b.charAt(match.index-1))h=f.substring(1);else{var k=f.substring(1,f.length-1);if("id"==k)h=a.id;else if(0>k.indexOf("{"))for(var g=a;null==h&&null!=g;)null!=g.value&&"object"==typeof g.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(h=g.getAttribute(k+"_"+Graph.diagramLanguage)),
null==h&&(h=g.hasAttribute(k)?null!=g.getAttribute(k)?g.getAttribute(k):"":null)),g=this.model.getParent(g);null==h&&(h=this.getGlobalVariable(k));null==h&&null!=c&&(h=c[k])}e.push(b.substring(d,match.index)+(null!=h?h:f));d=match.index+f.length}}e.push(b.substring(d))}return e.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0<a.length){for(var b=[],c=0;c<a.length;c++){var e=this.model.getCell(a[c].id);null!=e&&b.push(e)}this.setSelectionCells(b)}else this.clearSelection()};
Graph.prototype.selectCellsForConnectVertex=function(a,b,c){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=c&&(mxEvent.isTouchEvent(b)?c.update(c.getState(this.view.getState(a[1]))):c.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,c,e,d,f,h,k){f=f?f:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var g=this.isCloneConnectSource(a),m=g?a:this.getCompositeParent(a),l=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(m.geometry.x,m.geometry.y);b==mxConstants.DIRECTION_NORTH?(l.x+=m.geometry.width/2,l.y-=c):b==
-mxConstants.DIRECTION_SOUTH?(l.x+=m.geometry.width/2,l.y+=m.geometry.height+c):(l.x=b==mxConstants.DIRECTION_WEST?l.x-c:l.x+(m.geometry.width+c),l.y+=m.geometry.height/2);var n=this.view.getState(this.model.getParent(a));c=this.view.scale;var p=this.view.translate,m=p.x*c,p=p.y*c;null!=n&&this.model.isVertex(n.cell)&&(m=n.x,p=n.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(l.x+=a.parent.geometry.x,l.y+=a.parent.geometry.y);f=f?null:(new mxRectangle(m+l.x*c,p+l.y*c)).grow(40*c);f=null!=f?
+Graph.prototype.connectVertex=function(a,b,c,e,d,f,h,k){f=f?f:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var g=this.isCloneConnectSource(a),l=g?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);b==mxConstants.DIRECTION_NORTH?(m.x+=l.geometry.width/2,m.y-=c):b==
+mxConstants.DIRECTION_SOUTH?(m.x+=l.geometry.width/2,m.y+=l.geometry.height+c):(m.x=b==mxConstants.DIRECTION_WEST?m.x-c:m.x+(l.geometry.width+c),m.y+=l.geometry.height/2);var n=this.view.getState(this.model.getParent(a));c=this.view.scale;var p=this.view.translate,l=p.x*c,p=p.y*c;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);f=f?null:(new mxRectangle(l+m.x*c,p+m.y*c)).grow(40*c);f=null!=f?
this.getCells(0,0,0,0,null,null,f,null,!0):null;var n=this.view.getState(a),r=null,u=null;if(null!=f){f=f.reverse();for(var v=0;v<f.length;v++)if(!this.isCellLocked(f[v])&&!this.model.isEdge(f[v])&&f[v]!=a)if(!this.model.isAncestor(a,f[v])&&this.isContainer(f[v])&&(null==r||f[v]==this.model.getParent(a)))r=f[v];else if(null==u&&this.isCellConnectable(f[v])&&!this.model.isAncestor(f[v],a)&&!this.isSwimlane(f[v])){var t=this.view.getState(f[v]);null==n||null==t||mxUtils.intersects(n,t)||(u=f[v])}}var x=
-!mxEvent.isShiftDown(e)||mxEvent.isControlDown(e)||d;x&&("1"!=urlParams.sketch||d)&&(b==mxConstants.DIRECTION_NORTH?l.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?l.y+=a.geometry.height/2:l.x=b==mxConstants.DIRECTION_WEST?l.x-a.geometry.width/2:l.x+a.geometry.width/2);var w=[],y=u,u=r;d=mxUtils.bind(this,function(c){if(null==h||null!=c||null==u&&g){this.model.beginUpdate();try{if(null==y&&x){var d=this.getAbsoluteParent(null!=c?c:a),d=g?a:this.getCompositeParent(d);y=null!=c?c:this.duplicateCells([d],
-!1)[0];null!=c&&this.addCells([y],this.model.getParent(a),null,null,null,!0);var f=this.getCellGeometry(y);null!=f&&(null!=c&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?l.y-=f.height/2:b==mxConstants.DIRECTION_SOUTH?l.y+=f.height/2:l.x=b==mxConstants.DIRECTION_WEST?l.x-f.width/2:l.x+f.width/2),f.x=l.x-f.width/2,f.y=l.y-f.height/2);null!=r?(this.addCells([y],r,null,null,null,!0),u=null):x&&!g&&this.addCells([y],this.getDefaultParent(),null,null,null,!0)}var m=mxEvent.isControlDown(e)&&
-mxEvent.isShiftDown(e)&&x||null==u&&g?null:this.insertEdge(this.model.getParent(a),null,"",a,y,this.createCurrentEdgeStyle());if(null!=m&&this.connectionHandler.insertBeforeSource){var n=null;for(c=a;null!=c.parent&&null!=c.geometry&&c.geometry.relative&&c.parent!=m.parent;)c=this.model.getParent(c);null!=c&&null!=c.parent&&c.parent==m.parent&&(n=c.parent.getIndex(c),this.model.add(c.parent,m,n))}null==u&&null!=y&&null!=a.parent&&g&&b==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,
-y,n));null!=m&&w.push(m);null==u&&null!=y&&w.push(y);null==y&&null!=m&&m.geometry.setTerminalPoint(l,!1);null!=m&&this.fireEvent(new mxEventObject("cellsInserted","cells",[m]))}finally{this.model.endUpdate()}}if(null!=k)k(w);else return w});if(null==h||null!=y||!x||null==u&&g)return d(y);h(m+l.x*c,p+l.y*c,d)};
+!mxEvent.isShiftDown(e)||mxEvent.isControlDown(e)||d;x&&("1"!=urlParams.sketch||d)&&(b==mxConstants.DIRECTION_NORTH?m.y-=a.geometry.height/2:b==mxConstants.DIRECTION_SOUTH?m.y+=a.geometry.height/2:m.x=b==mxConstants.DIRECTION_WEST?m.x-a.geometry.width/2:m.x+a.geometry.width/2);var w=[],y=u,u=r;d=mxUtils.bind(this,function(c){if(null==h||null!=c||null==u&&g){this.model.beginUpdate();try{if(null==y&&x){var d=this.getAbsoluteParent(null!=c?c:a),d=g?a:this.getCompositeParent(d);y=null!=c?c:this.duplicateCells([d],
+!1)[0];null!=c&&this.addCells([y],this.model.getParent(a),null,null,null,!0);var f=this.getCellGeometry(y);null!=f&&(null!=c&&"1"==urlParams.sketch&&(b==mxConstants.DIRECTION_NORTH?m.y-=f.height/2:b==mxConstants.DIRECTION_SOUTH?m.y+=f.height/2:m.x=b==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([y],r,null,null,null,!0),u=null):x&&!g&&this.addCells([y],this.getDefaultParent(),null,null,null,!0)}var l=mxEvent.isControlDown(e)&&
+mxEvent.isShiftDown(e)&&x||null==u&&g?null:this.insertEdge(this.model.getParent(a),null,"",a,y,this.createCurrentEdgeStyle());if(null!=l&&this.connectionHandler.insertBeforeSource){var n=null;for(c=a;null!=c.parent&&null!=c.geometry&&c.geometry.relative&&c.parent!=l.parent;)c=this.model.getParent(c);null!=c&&null!=c.parent&&c.parent==l.parent&&(n=c.parent.getIndex(c),this.model.add(c.parent,l,n))}null==u&&null!=y&&null!=a.parent&&g&&b==mxConstants.DIRECTION_WEST&&(n=a.parent.getIndex(a),this.model.add(a.parent,
+y,n));null!=l&&w.push(l);null==u&&null!=y&&w.push(y);null==y&&null!=l&&l.geometry.setTerminalPoint(m,!1);null!=l&&this.fireEvent(new mxEventObject("cellsInserted","cells",[l]))}finally{this.model.endUpdate()}}if(null!=k)k(w);else return w});if(null==h||null!=y||!x||null==u&&g)return d(y);h(l+m.x*c,p+m.y*c,d)};
Graph.prototype.getIndexableText=function(){var a=document.createElement("div"),b=[],c,e;for(e in this.model.cells)if(c=this.model.cells[e],this.model.isVertex(c)||this.model.isEdge(c))this.isHtmlLabel(c)?(a.innerHTML=this.sanitizeHtml(this.getLabel(c)),c=mxUtils.extractTextWithWhitespace([a])):c=this.getLabel(c),c=mxUtils.trim(c.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")),0<c.length&&b.push(c);return b.join(" ")};
Graph.prototype.convertValueToString=function(a){var b=this.model.getValue(a);if(null!=b&&"object"==typeof b){var c=null;if(this.isReplacePlaceholders(a)&&null!=a.getAttribute("placeholder"))for(var b=a.getAttribute("placeholder"),e=a;null==c&&null!=e;)null!=e.value&&"object"==typeof e.value&&(c=e.hasAttribute(b)?null!=e.getAttribute(b)?e.getAttribute(b):"":null),e=this.model.getParent(e);else c=null,Graph.translateDiagram&&null!=Graph.diagramLanguage&&(c=b.getAttribute("label_"+Graph.diagramLanguage)),
null==c&&(c=b.getAttribute("label")||"");return c||""}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};
@@ -2694,8 +2696,8 @@ Graph.prototype.updateHorizontalStyle=function(a,b){if(null!=a&&null!=b&&null!=t
Graph.prototype.replaceDefaultColors=function(a,b){if(null!=b){var c=mxUtils.hex2rgb(this.shapeBackgroundColor),e=mxUtils.hex2rgb(this.shapeForegroundColor);this.replaceDefaultColor(b,mxConstants.STYLE_FONTCOLOR,e);this.replaceDefaultColor(b,mxConstants.STYLE_FILLCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_STROKECOLOR,e);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BORDER,e);this.replaceDefaultColor(b,mxConstants.STYLE_IMAGE_BACKGROUND,c);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BORDERCOLOR,
e);this.replaceDefaultColor(b,mxConstants.STYLE_SWIMLANE_FILLCOLOR,c);this.replaceDefaultColor(b,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,c)}return b};Graph.prototype.replaceDefaultColor=function(a,b,c){null!=a&&"default"==a[b]&&null!=c&&(a[b]=c)};
Graph.prototype.updateAlternateBounds=function(a,b,c){if(null!=a&&null!=b&&null!=this.layoutManager&&null!=b.alternateBounds){var e=this.layoutManager.getLayout(this.model.getParent(a));null!=e&&e.constructor==mxStackLayout&&(e.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,c,e,d){b=null!=b?b:!1;null==c&&(c=this.getFoldableCells(this.getSelectionCells(),a));if(null!=c){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var f=0;f<c.length;f++){var h=this.view.getState(c[f]),k=this.getCellGeometry(c[f]);if(null!=h&&null!=k){var g=Math.round(k.width-h.width/this.view.scale),m=Math.round(k.height-h.height/this.view.scale);if(0!=m||0!=g){var l=this.model.getParent(c[f]),n=this.layoutManager.getLayout(l);
-null==n?null!=d&&this.isMoveCellsEvent(d,h)&&this.moveSiblings(h,l,g,m):null!=d&&mxEvent.isAltDown(d)||n.constructor!=mxStackLayout||n.resizeLast||this.resizeParentStacks(l,n,g,m)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(c)}};
+Graph.prototype.foldCells=function(a,b,c,e,d){b=null!=b?b:!1;null==c&&(c=this.getFoldableCells(this.getSelectionCells(),a));if(null!=c){this.model.beginUpdate();try{if(mxGraph.prototype.foldCells.apply(this,arguments),null!=this.layoutManager)for(var f=0;f<c.length;f++){var h=this.view.getState(c[f]),k=this.getCellGeometry(c[f]);if(null!=h&&null!=k){var g=Math.round(k.width-h.width/this.view.scale),l=Math.round(k.height-h.height/this.view.scale);if(0!=l||0!=g){var m=this.model.getParent(c[f]),n=this.layoutManager.getLayout(m);
+null==n?null!=d&&this.isMoveCellsEvent(d,h)&&this.moveSiblings(h,m,g,l):null!=d&&mxEvent.isAltDown(d)||n.constructor!=mxStackLayout||n.resizeLast||this.resizeParentStacks(m,n,g,l)}}}}finally{this.model.endUpdate()}this.isEnabled()&&this.setSelectionCells(c)}};
Graph.prototype.moveSiblings=function(a,b,c,e){this.model.beginUpdate();try{var d=this.getCellsBeyond(a.x,a.y,b,!0,!0);for(b=0;b<d.length;b++)if(d[b]!=a.cell){var f=this.view.getState(d[b]),h=this.getCellGeometry(d[b]);null!=f&&null!=h&&(h=h.clone(),h.translate(Math.round(c*Math.max(0,Math.min(1,(f.x-a.x)/a.width))),Math.round(e*Math.max(0,Math.min(1,(f.y-a.y)/a.height)))),this.model.setGeometry(d[b],h))}}finally{this.model.endUpdate()}};
Graph.prototype.resizeParentStacks=function(a,b,c,e){if(null!=this.layoutManager&&null!=b&&b.constructor==mxStackLayout&&!b.resizeLast){this.model.beginUpdate();try{for(var d=b.horizontal;null!=a&&null!=b&&b.constructor==mxStackLayout&&b.horizontal==d&&!b.resizeLast;){var f=this.getCellGeometry(a),h=this.view.getState(a);null!=h&&null!=f&&(f=f.clone(),b.horizontal?f.width+=c+Math.min(0,h.width/this.view.scale-f.width):f.height+=e+Math.min(0,h.height/this.view.scale-f.height),this.model.setGeometry(a,
f));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)};
@@ -2743,39 +2745,40 @@ HoverIcons.prototype.update=function(a,b,c){if(!this.graph.connectionArrowsEnabl
this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=a,this.update(a,b,c))}),this.updateDelay+10))):null!=this.startTime&&(e=(new Date).getTime()-this.startTime);this.setDisplay("");null!=this.currentState&&this.currentState!=a&&e<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,b,c)?this.reset(!1):(null!=this.currentState||e>this.activationDelay)&&this.currentState!=a&&(e>this.updateDelay&&null!=a||null==this.bbox||null==b||null==c||!mxUtils.contains(this.bbox,
b,c))&&(null!=a&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(a),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=a&&this.graph.connectionHandler.constraintHandler.reset()):this.reset())}};
HoverIcons.prototype.setCurrentState=function(a){"eastwest"!=a.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=a};Graph.prototype.createParent=function(a,b,c,e,d){a=this.cloneCell(a);for(var f=0;f<c;f++){var h=this.cloneCell(b),k=this.getCellGeometry(h);null!=k&&(k.x+=f*e,k.y+=f*d);a.insert(h)}return a};
-Graph.prototype.createTable=function(a,b,c,e,d,f,h,k,g){c=null!=c?c:60;e=null!=e?e:40;f=null!=f?f:30;k=null!=k?k:"shape=partialRectangle;collapsible=0;dropTarget=0;pointerEvents=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";g=null!=g?g:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;";return this.createParent(this.createVertex(null,null,null!=d?d:"",0,0,b*c,
-a*e+(null!=d?f:0),null!=h?h:"shape=table;startSize="+(null!=d?f:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,b*c,e,k),this.createVertex(null,null,"",0,0,c,e,g),b,c,0),a,0,e)};Graph.prototype.setTableValues=function(a,b,c){for(var e=this.model.getChildCells(a,!0),d=0;d<e.length;d++)if(null!=c&&(e[d].value=c[d]),null!=b)for(var f=this.model.getChildCells(e[d],!0),h=0;h<f.length;h++)null!=b[d][h]&&(f[h].value=b[d][h]);return a};
-Graph.prototype.createCrossFunctionalSwimlane=function(a,b,c,e,d,f,h,k,g){c=null!=c?c:120;e=null!=e?e:120;var m=null==d?0:40;h=null!=h?h:"swimlane;horizontal=0;fontStyle=0;points=[[0,0.5],[1,0.5]];fillColor=none;strokeColor=none;portConstraint=eastwest;startSize="+m+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";k=null!=k?k:"swimlane;fontStyle=0;connectable=0;fillColor=none;startSize=40;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";g=null!=g?g:"swimlane;fontStyle=0;connectable=0;fillColor=none;startSize="+
-(null==d?"40":"0")+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";d=this.createVertex(null,null,null!=d?d:"",0,0,b*c,a*e,null!=f?f:"shape=table;childLayout=tableLayout;startSize="+m+";"+(null==d?"fillColor=none;":"")+"collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;");f=mxUtils.getValue(this.getCellStyle(d),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);d.geometry.width+=f;d.geometry.height+=f;h=this.createVertex(null,null,"",0,f,b*c+f,e,h);d.insert(this.createParent(h,
-this.createVertex(null,null,"",f,0,c,e,k),b,c,0));return 1<a?(h.geometry.y=e+f,this.createParent(d,this.createParent(h,this.createVertex(null,null,"",f,0,c,e,g),b,c,0),a-1,0,e)):d};
-Graph.prototype.visitTableCells=function(a,b){for(var c=null,e=this.model.getChildCells(a,!0),d=this.getActualStartSize(a,!0),f=0;f<e.length;f++){for(var h=this.getActualStartSize(e[f],!0),k=this.model.getChildCells(e[f],!0),g=null,m=[],l=0;l<k.length;l++){var n=this.getCellGeometry(k[l]),p={cell:k[l],rospan:1,colspan:1,row:f,col:l,geo:n},n=null!=n.alternateBounds?n.alternateBounds:n;p.point=new mxPoint(n.width+(null!=g?g.point.x:d.x+h.x),n.height+(null!=c&&null!=c[0]?c[0].point.y:d.y+h.y));p.actual=
-p;null!=c&&null!=c[l]&&1<c[l].rowspan?(p.rowspan=c[l].rowspan-1,p.colspan=c[l].colspan,p.actual=c[l].actual):null!=g&&1<g.colspan?(p.rowspan=g.rowspan,p.colspan=g.colspan-1,p.actual=g.actual):(g=this.getCurrentCellStyle(k[l],!0),null!=g&&(p.rowspan=parseInt(g.rowspan||1),p.colspan=parseInt(g.colspan||1)));b(p,k.length,e.length,d.x+h.x,d.y+h.y);m.push(p);g=p}c=m}};
-Graph.prototype.getTableLines=function(a,b,c){var e=[],d=[];(b||c)&&this.visitTableCells(a,mxUtils.bind(this,function(a,h,k,g,m){b&&a.row<k-1&&(null==e[a.row]&&(e[a.row]=[new mxPoint(g,a.point.y)]),1<a.rowspan&&e[a.row].push(null),e[a.row].push(a.point));c&&a.col<h-1&&(null==d[a.col]&&(d[a.col]=[new mxPoint(a.point.x,m)]),1<a.colspan&&d[a.col].push(null),d[a.col].push(a.point))}));return e.concat(d)};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.isStack=function(a){a=this.getCellStyle(a);return null!=a&&"stackLayout"==a.childLayout};Graph.prototype.isStackChild=function(a){return this.model.isVertex(a)&&this.isStack(this.model.getParent(a))};
-Graph.prototype.setTableRowHeight=function(a,b,c){c=null!=c?c:!0;var e=this.getModel();e.beginUpdate();try{var d=this.getCellGeometry(a);if(null!=d){d=d.clone();d.height+=b;e.setGeometry(a,d);var f=e.getParent(a),h=e.getChildCells(f,!0);if(!c){var k=mxUtils.indexOf(h,a);if(k<h.length-1){var g=h[k+1],m=this.getCellGeometry(g);null!=m&&(m=m.clone(),m.y+=b,m.height-=b,e.setGeometry(g,m))}}var l=this.getCellGeometry(f);null!=l&&(c||(c=a==h[h.length-1]),c&&(l=l.clone(),l.height+=b,e.setGeometry(f,l)))}}finally{e.endUpdate()}};
-Graph.prototype.setTableColumnWidth=function(a,b,c){c=null!=c?c:!1;var e=this.getModel(),d=e.getParent(a),f=e.getParent(d),h=e.getChildCells(d,!0);a=mxUtils.indexOf(h,a);var k=a==h.length-1;e.beginUpdate();try{for(var g=e.getChildCells(f,!0),m=0;m<g.length;m++){var d=g[m],h=e.getChildCells(d,!0),l=h[a],n=this.getCellGeometry(l);null!=n&&(n=n.clone(),n.width+=b,null!=n.alternateBounds&&(n.alternateBounds.width+=b),e.setGeometry(l,n));a<h.length-1&&(l=h[a+1],n=this.getCellGeometry(l),null!=n&&(n=n.clone(),
-n.x+=b,c||(n.width-=b,null!=n.alternateBounds&&(n.alternateBounds.width-=b)),e.setGeometry(l,n)))}if(k||c){var p=this.getCellGeometry(f);null!=p&&(p=p.clone(),p.width+=b,e.setGeometry(f,p))}}finally{e.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.createTable=function(a,b,c,e,d,f,h,k,g){c=null!=c?c:60;e=null!=e?e:40;f=null!=f?f:30;k=null!=k?k:"shape=partialRectangle;collapsible=0;dropTarget=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";g=null!=g?g:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;";return this.createParent(this.createVertex(null,null,null!=d?d:"",0,0,b*c,a*e+(null!=d?f:
+0),null!=h?h:"shape=table;startSize="+(null!=d?f:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,b*c,e,k),this.createVertex(null,null,"",0,0,c,e,g),b,c,0),a,0,e)};Graph.prototype.setTableValues=function(a,b,c){for(var e=this.model.getChildCells(a,!0),d=0;d<e.length;d++)if(null!=c&&(e[d].value=c[d]),null!=b)for(var f=this.model.getChildCells(e[d],!0),h=0;h<f.length;h++)null!=b[d][h]&&(f[h].value=b[d][h]);return a};
+Graph.prototype.createCrossFunctionalSwimlane=function(a,b,c,e,d,f,h,k,g){c=null!=c?c:120;e=null!=e?e:120;h=null!=h?h:"swimlane;horizontal=0;swimlaneHead=0;swimlaneBody=0;fontStyle=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize=40;collapsible=0;recursiveResize=0;expand=0;";k=null!=k?k:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=40;collapsible=0;recursiveResize=0;expand=0;";g=null!=g?g:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=0;collapsible=0;recursiveResize=0;expand=0;";
+d=this.createVertex(null,null,null!=d?d:"",0,0,b*c,a*e,null!=f?f:"shape=table;childLayout=tableLayout;"+(null==d?"startSize=0;fillColor=none;":"startSize=40;")+"collapsible=0;recursiveResize=0;expand=0;");f=mxUtils.getValue(this.getCellStyle(d),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);d.geometry.width+=f;d.geometry.height+=f;h=this.createVertex(null,null,"",0,f,b*c+f,e,h);d.insert(this.createParent(h,this.createVertex(null,null,"",f,0,c,e,k),b,c,0));return 1<a?(h.geometry.y=e+f,
+this.createParent(d,this.createParent(h,this.createVertex(null,null,"",f,0,c,e,g),b,c,0),a-1,0,e)):d};
+Graph.prototype.visitTableCells=function(a,b){for(var c=null,e=this.model.getChildCells(a,!0),d=this.getActualStartSize(a,!0),f=0;f<e.length;f++){for(var h=this.getActualStartSize(e[f],!0),k=this.model.getChildCells(e[f],!0),g=this.getCellStyle(e[f],!0),l=null,m=[],n=0;n<k.length;n++){var p=this.getCellGeometry(k[n]),r={cell:k[n],rospan:1,colspan:1,row:f,col:n,geo:p},p=null!=p.alternateBounds?p.alternateBounds:p;r.point=new mxPoint(p.width+(null!=l?l.point.x:d.x+h.x),p.height+(null!=c&&null!=c[0]?
+c[0].point.y:d.y+h.y));r.actual=r;null!=c&&null!=c[n]&&1<c[n].rowspan?(r.rowspan=c[n].rowspan-1,r.colspan=c[n].colspan,r.actual=c[n].actual):null!=l&&1<l.colspan?(r.rowspan=l.rowspan,r.colspan=l.colspan-1,r.actual=l.actual):(l=this.getCurrentCellStyle(k[n],!0),null!=l&&(r.rowspan=parseInt(l.rowspan||1),r.colspan=parseInt(l.colspan||1)));l=1==mxUtils.getValue(g,mxConstants.STYLE_SWIMLANE_HEAD,1)&&mxUtils.getValue(g,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE;b(r,k.length,e.length,
+d.x+(l?h.x:0),d.y+(l?h.y:0));m.push(r);l=r}c=m}};Graph.prototype.getTableLines=function(a,b,c){var e=[],d=[];(b||c)&&this.visitTableCells(a,mxUtils.bind(this,function(a,h,k,g,l){b&&a.row<k-1&&(null==e[a.row]&&(e[a.row]=[new mxPoint(g,a.point.y)]),1<a.rowspan&&e[a.row].push(null),e[a.row].push(a.point));c&&a.col<h-1&&(null==d[a.col]&&(d[a.col]=[new mxPoint(a.point.x,l)]),1<a.colspan&&d[a.col].push(null),d[a.col].push(a.point))}));return e.concat(d)};
+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.isStack=function(a){a=this.getCellStyle(a);return null!=a&&"stackLayout"==a.childLayout};
+Graph.prototype.isStackChild=function(a){return this.model.isVertex(a)&&this.isStack(this.model.getParent(a))};
+Graph.prototype.setTableRowHeight=function(a,b,c){c=null!=c?c:!0;var e=this.getModel();e.beginUpdate();try{var d=this.getCellGeometry(a);if(null!=d){d=d.clone();d.height+=b;e.setGeometry(a,d);var f=e.getParent(a),h=e.getChildCells(f,!0);if(!c){var k=mxUtils.indexOf(h,a);if(k<h.length-1){var g=h[k+1],l=this.getCellGeometry(g);null!=l&&(l=l.clone(),l.y+=b,l.height-=b,e.setGeometry(g,l))}}var m=this.getCellGeometry(f);null!=m&&(c||(c=a==h[h.length-1]),c&&(m=m.clone(),m.height+=b,e.setGeometry(f,m)))}}finally{e.endUpdate()}};
+Graph.prototype.setTableColumnWidth=function(a,b,c){c=null!=c?c:!1;var e=this.getModel(),d=e.getParent(a),f=e.getParent(d),h=e.getChildCells(d,!0);a=mxUtils.indexOf(h,a);var k=a==h.length-1;e.beginUpdate();try{for(var g=e.getChildCells(f,!0),l=0;l<g.length;l++){var d=g[l],h=e.getChildCells(d,!0),m=h[a],n=this.getCellGeometry(m);null!=n&&(n=n.clone(),n.width+=b,null!=n.alternateBounds&&(n.alternateBounds.width+=b),e.setGeometry(m,n));a<h.length-1&&(m=h[a+1],n=this.getCellGeometry(m),null!=n&&(n=n.clone(),
+n.x+=b,c||(n.width-=b,null!=n.alternateBounds&&(n.alternateBounds.width-=b)),e.setGeometry(m,n)))}if(k||c){var p=this.getCellGeometry(f);null!=p&&(p=p.clone(),p.width+=b,e.setGeometry(f,p))}}finally{e.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 c=0,e=0;e<a.length;e++)if(!this.isVertexIgnored(a[e])){var d=this.graph.getCellGeometry(a[e]);null!=d&&(c+=b?d.width:d.height)}return c};
TableLayout.prototype.getRowLayout=function(a,b){for(var c=this.graph.model.getChildCells(a,!0),e=this.graph.getActualStartSize(a,!0),d=this.getSize(c,!0),f=b-e.x-e.width,h=[],e=e.x,k=0;k<c.length;k++){var g=this.graph.getCellGeometry(c[k]);null!=g&&(e+=(null!=g.alternateBounds?g.alternateBounds.width:g.width)*f/d,h.push(Math.round(e)))}return h};
-TableLayout.prototype.layoutRow=function(a,b,c,e,d){d=this.graph.getModel();var f=d.getChildCells(a,!0);a=this.graph.getActualStartSize(a,!0);var h=a.x,k=0;null!=b&&(b=b.slice(),b.splice(0,0,a.x));for(var g=0;g<f.length;g++){var m=this.graph.getCellGeometry(f[g]);null!=m&&(m=m.clone(),m.y=a.y,m.height=c-a.y-a.height,null!=b?(m.x=b[g],m.width=b[g+1]-m.x,g==f.length-1&&g<b.length-2&&(m.width=e-m.x-a.x-a.width)):(m.x=h,h+=m.width,g==f.length-1?m.width=e-a.x-a.width-k:k+=m.width),m.alternateBounds=new mxRectangle(0,
-0,m.width,m.height),d.setGeometry(f[g],m))}return k};
-TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),c=this.graph.getCellGeometry(a),e=this.graph.getCellStyle(a),d="1"==mxUtils.getValue(e,"resizeLastRow","0"),f="1"==mxUtils.getValue(e,"resizeLast","0"),e="1"==mxUtils.getValue(e,"fixedRows","0"),h=this.graph.getModel(),k=0;h.beginUpdate();try{var g=c.height-b.y-b.height,m=c.width-b.x-b.width,l=h.getChildCells(a,!0),n=this.getSize(l,!1);if(0<g&&0<m&&0<l.length&&0<n){if(d){var p=this.graph.getCellGeometry(l[l.length-
-1]);null!=p&&(p=p.clone(),p.height=g-n+p.height,h.setGeometry(l[l.length-1],p))}for(var r=f?null:this.getRowLayout(l[0],m),u=[],v=b.y,t=0;t<l.length;t++)p=this.graph.getCellGeometry(l[t]),null!=p&&(p=p.clone(),p.x=b.x,p.width=m,p.y=Math.round(v),v=d||e?v+p.height:v+p.height/n*g,p.height=Math.round(v)-p.y,h.setGeometry(l[t],p)),k=Math.max(k,this.layoutRow(l[t],r,p.height,m,u));e&&g<n&&(c=c.clone(),c.height=v+b.height,h.setGeometry(a,c));f&&m<k+Graph.minTableColumnWidth&&(c=c.clone(),c.width=k+b.width+
+TableLayout.prototype.layoutRow=function(a,b,c,e,d){d=this.graph.getModel();var f=d.getChildCells(a,!0);a=this.graph.getActualStartSize(a,!0);var h=a.x,k=0;null!=b&&(b=b.slice(),b.splice(0,0,a.x));for(var g=0;g<f.length;g++){var l=this.graph.getCellGeometry(f[g]);null!=l&&(l=l.clone(),l.y=a.y,l.height=c-a.y-a.height,null!=b?(l.x=b[g],l.width=b[g+1]-l.x,g==f.length-1&&g<b.length-2&&(l.width=e-l.x-a.x-a.width)):(l.x=h,h+=l.width,g==f.length-1?l.width=e-a.x-a.width-k:k+=l.width),l.alternateBounds=new mxRectangle(0,
+0,l.width,l.height),d.setGeometry(f[g],l))}return k};
+TableLayout.prototype.execute=function(a){if(null!=a){var b=this.graph.getActualStartSize(a,!0),c=this.graph.getCellGeometry(a),e=this.graph.getCellStyle(a),d="1"==mxUtils.getValue(e,"resizeLastRow","0"),f="1"==mxUtils.getValue(e,"resizeLast","0"),e="1"==mxUtils.getValue(e,"fixedRows","0"),h=this.graph.getModel(),k=0;h.beginUpdate();try{var g=c.height-b.y-b.height,l=c.width-b.x-b.width,m=h.getChildCells(a,!0),n=this.getSize(m,!1);if(0<g&&0<l&&0<m.length&&0<n){if(d){var p=this.graph.getCellGeometry(m[m.length-
+1]);null!=p&&(p=p.clone(),p.height=g-n+p.height,h.setGeometry(m[m.length-1],p))}for(var r=f?null:this.getRowLayout(m[0],l),u=[],v=b.y,t=0;t<m.length;t++)p=this.graph.getCellGeometry(m[t]),null!=p&&(p=p.clone(),p.x=b.x,p.width=l,p.y=Math.round(v),v=d||e?v+p.height:v+p.height/n*g,p.height=Math.round(v)-p.y,h.setGeometry(m[t],p)),k=Math.max(k,this.layoutRow(m[t],r,p.height,l,u));e&&g<n&&(c=c.clone(),c.height=v+b.height,h.setGeometry(a,c));f&&l<k+Graph.minTableColumnWidth&&(c=c.clone(),c.width=k+b.width+
b.x+Graph.minTableColumnWidth,h.setGeometry(a,c));this.graph.visitTableCells(a,mxUtils.bind(this,function(a){h.setVisible(a.cell,a.actual.cell==a.cell);if(a.actual.cell!=a.cell){if(a.actual.row==a.row){var b=null!=a.geo.alternateBounds?a.geo.alternateBounds:a.geo;a.actual.geo.width+=b.width}a.actual.col==a.col&&(b=null!=a.geo.alternateBounds?a.geo.alternateBounds:a.geo,a.actual.geo.height+=b.height)}}))}}finally{h.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 c=mxShape.prototype.paint;mxShape.prototype.paint=function(){c.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 e=mxCellRenderer.prototype.isShapeInvalid;mxCellRenderer.prototype.isShapeInvalid=function(a,b){return e.apply(this,arguments)||null!=a.routedPoints&&null!=b.routedPoints&&!mxUtils.equalPoints(b.routedPoints,a.routedPoints)};var d=mxGraphView.prototype.updateCellState;mxGraphView.prototype.updateCellState=
function(a){d.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 h=b[g+1],k=b[g],m=[],l=b[g+2];g<b.length-2&&mxUtils.ptSegDistSq(k.x,k.y,l.x,l.y,h.x,h.y)<1*this.scale*this.scale;)h=l,g++,l=b[g+2];for(var c=e(0,k.x,k.y)||c,I=0;I<this.validEdges.length;I++){var B=this.validEdges[I],G=B.absolutePoints;if(null!=G&&mxUtils.intersects(a,B)&&"1"!=B.style.noJump)for(B=0;B<G.length-1;B++){for(var z=G[B+1],F=G[B],l=G[B+2];B<G.length-2&&mxUtils.ptSegDistSq(F.x,F.y,l.x,l.y,z.x,z.y)<1*this.scale*this.scale;)z=
-l,B++,l=G[B+2];l=mxUtils.intersection(k.x,k.y,h.x,h.y,F.x,F.y,z.x,z.y);if(null!=l&&(Math.abs(l.x-k.x)>f||Math.abs(l.y-k.y)>f)&&(Math.abs(l.x-h.x)>f||Math.abs(l.y-h.y)>f)&&(Math.abs(l.x-F.x)>f||Math.abs(l.y-F.y)>f)&&(Math.abs(l.x-z.x)>f||Math.abs(l.y-z.y)>f)){z=l.x-k.x;F=l.y-k.y;l={distSq:z*z+F*F,x:l.x,y:l.y};for(z=0;z<m.length;z++)if(m[z].distSq>l.distSq){m.splice(z,0,l);l=null;break}null==l||0!=m.length&&m[m.length-1].x===l.x&&m[m.length-1].y===l.y||m.push(l)}}}for(B=0;B<m.length;B++)c=e(1,m[B].x,
-m[B].y)||c}l=b[b.length-1];c=e(0,l.x,l.y)||c}a.routedPoints=d;return c}return!1};var f=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)f.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
-"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),h=!0,k=null,m=null,l=[],n=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var B=this.state.routedPoints[p],G=new mxPoint(B.x/this.scale,B.y/this.scale);0==p?G=b[0]:p==this.state.routedPoints.length-1&&(G=b[b.length-1]);var z=!1;if(null!=k&&1==B.type){var F=this.state.routedPoints[p+1],B=F.x/this.scale-G.x,F=F.y/this.scale-G.y,B=B*B+F*F;null==n&&(n=new mxPoint(G.x-k.x,G.y-k.y),
-m=Math.sqrt(n.x*n.x+n.y*n.y),0<m?(n.x=n.x*e/m,n.y=n.y*e/m):n=null);B>e*e&&0<m&&(B=k.x-G.x,F=k.y-G.y,B=B*B+F*F,B>e*e&&(z=new mxPoint(G.x-n.x,G.y-n.y),B=new mxPoint(G.x+n.x,G.y+n.y),l.push(z),this.addPoints(a,l,c,d,!1,null,h),l=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,h=!1,"sharp"==g?(a.lineTo(z.x-n.y*l,z.y+n.x*l),a.lineTo(B.x-n.y*l,B.y+n.x*l),a.lineTo(B.x,B.y)):"line"==g?(a.moveTo(z.x+n.y*l,z.y-n.x*l),a.lineTo(z.x-n.y*l,z.y+n.x*l),a.moveTo(B.x-n.y*l,B.y+n.x*l),a.lineTo(B.x+n.y*
-l,B.y-n.x*l),a.moveTo(B.x,B.y)):"arc"==g?(l*=1.3,a.curveTo(z.x-n.y*l,z.y+n.x*l,B.x-n.y*l,B.y+n.x*l,B.x,B.y)):(a.moveTo(B.x,B.y),h=!0),l=[B],z=!0))}else n=null;z||(l.push(G),k=G)}this.addPoints(a,l,c,d,!1,null,h);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 k=mxGraphView.prototype.updateFloatingTerminalPoint;
-mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)k.apply(this,arguments);else{b=this.getTerminalPort(a,b,d);var e=this.getNextPoint(a,c,d),f=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),h=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=g)var m=Math.cos(-g),l=Math.sin(-g),e=mxUtils.getRotatedPoint(e,m,l,h);m=parseFloat(a.style[mxConstants.STYLE_PERIMETER_SPACING]||
-0);m+=parseFloat(a.style[d?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);e=this.getPerimeterPoint(b,e,0==g&&f,m);0!=g&&(m=Math.cos(g),l=Math.sin(g),e=mxUtils.getRotatedPoint(e,m,l,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 h=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==d||h<d)c=g,d=h}}null!=c&&(e=c)}return e};var g=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=g.apply(this,arguments);"1"==a.getAttribute("placeholders")&&null!=c.state&&(d=c.state.view.graph.replacePlaceholders(c.state.cell,d));return d};var m=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-1),d=mxUtils.parseXml(Graph.decompress(c));return new mxShape(new mxStencil(d.documentElement))}catch(u){null!=window.console&&console.log("Error in shape: "+u)}}return m.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
+b||f.x!=c||f.y!=e},f=.5*this.scale,c=!1,d=[],g=0;g<b.length-1;g++){for(var h=b[g+1],k=b[g],l=[],m=b[g+2];g<b.length-2&&mxUtils.ptSegDistSq(k.x,k.y,m.x,m.y,h.x,h.y)<1*this.scale*this.scale;)h=m,g++,m=b[g+2];for(var c=e(0,k.x,k.y)||c,I=0;I<this.validEdges.length;I++){var B=this.validEdges[I],G=B.absolutePoints;if(null!=G&&mxUtils.intersects(a,B)&&"1"!=B.style.noJump)for(B=0;B<G.length-1;B++){for(var z=G[B+1],F=G[B],m=G[B+2];B<G.length-2&&mxUtils.ptSegDistSq(F.x,F.y,m.x,m.y,z.x,z.y)<1*this.scale*this.scale;)z=
+m,B++,m=G[B+2];m=mxUtils.intersection(k.x,k.y,h.x,h.y,F.x,F.y,z.x,z.y);if(null!=m&&(Math.abs(m.x-k.x)>f||Math.abs(m.y-k.y)>f)&&(Math.abs(m.x-h.x)>f||Math.abs(m.y-h.y)>f)&&(Math.abs(m.x-F.x)>f||Math.abs(m.y-F.y)>f)&&(Math.abs(m.x-z.x)>f||Math.abs(m.y-z.y)>f)){z=m.x-k.x;F=m.y-k.y;m={distSq:z*z+F*F,x:m.x,y:m.y};for(z=0;z<l.length;z++)if(l[z].distSq>m.distSq){l.splice(z,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(B=0;B<l.length;B++)c=e(1,l[B].x,
+l[B].y)||c}m=b[b.length-1];c=e(0,m.x,m.y)||c}a.routedPoints=d;return c}return!1};var f=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)f.apply(this,arguments);else{var d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,e=(parseInt(mxUtils.getValue(this.style,
+"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,g=mxUtils.getValue(this.style,"jumpStyle","none"),h=!0,k=null,l=null,m=[],n=null;a.begin();for(var p=0;p<this.state.routedPoints.length;p++){var B=this.state.routedPoints[p],G=new mxPoint(B.x/this.scale,B.y/this.scale);0==p?G=b[0]:p==this.state.routedPoints.length-1&&(G=b[b.length-1]);var z=!1;if(null!=k&&1==B.type){var F=this.state.routedPoints[p+1],B=F.x/this.scale-G.x,F=F.y/this.scale-G.y,B=B*B+F*F;null==n&&(n=new mxPoint(G.x-k.x,G.y-k.y),
+l=Math.sqrt(n.x*n.x+n.y*n.y),0<l?(n.x=n.x*e/l,n.y=n.y*e/l):n=null);B>e*e&&0<l&&(B=k.x-G.x,F=k.y-G.y,B=B*B+F*F,B>e*e&&(z=new mxPoint(G.x-n.x,G.y-n.y),B=new mxPoint(G.x+n.x,G.y+n.y),m.push(z),this.addPoints(a,m,c,d,!1,null,h),m=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,h=!1,"sharp"==g?(a.lineTo(z.x-n.y*m,z.y+n.x*m),a.lineTo(B.x-n.y*m,B.y+n.x*m),a.lineTo(B.x,B.y)):"line"==g?(a.moveTo(z.x+n.y*m,z.y-n.x*m),a.lineTo(z.x-n.y*m,z.y+n.x*m),a.moveTo(B.x-n.y*m,B.y+n.x*m),a.lineTo(B.x+n.y*
+m,B.y-n.x*m),a.moveTo(B.x,B.y)):"arc"==g?(m*=1.3,a.curveTo(z.x-n.y*m,z.y+n.x*m,B.x-n.y*m,B.y+n.x*m,B.x,B.y)):(a.moveTo(B.x,B.y),h=!0),m=[B],z=!0))}else n=null;z||(m.push(G),k=G)}this.addPoints(a,m,c,d,!1,null,h);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 k=mxGraphView.prototype.updateFloatingTerminalPoint;
+mxGraphView.prototype.updateFloatingTerminalPoint=function(a,b,c,d){if(null==b||null==a||"1"!=b.style.snapToPoint&&"1"!=a.style.snapToPoint)k.apply(this,arguments);else{b=this.getTerminalPort(a,b,d);var e=this.getNextPoint(a,c,d),f=this.graph.isOrthogonal(a),g=mxUtils.toRadians(Number(b.style[mxConstants.STYLE_ROTATION]||"0")),h=new mxPoint(b.getCenterX(),b.getCenterY());if(0!=g)var l=Math.cos(-g),m=Math.sin(-g),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==g&&f,l);0!=g&&(l=Math.cos(g),m=Math.sin(g),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 h=(g.x-e.x)*(g.x-e.x)+(g.y-e.y)*(g.y-e.y);if(null==d||h<d)c=g,d=h}}null!=c&&(e=c)}return e};var g=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(a,b,c){var d=g.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-1),d=mxUtils.parseXml(Graph.decompress(c));return new mxShape(new mxStencil(d.documentElement))}catch(u){null!=window.console&&console.log("Error in shape: "+u)}}return l.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 c=mxStencilRegistry.getBasenameForStencil(a);if(null!=c){b=mxStencilRegistry.libraries[c];if(null!=b){if(null==mxStencilRegistry.packages[c]){for(var e=0;e<b.length;e++){var d=b[e];if(!mxStencilRegistry.filesLoaded[d])if(mxStencilRegistry.filesLoaded[d]=!0,".xml"==d.toLowerCase().substring(d.length-4,d.length))mxStencilRegistry.loadStencilSet(d,
null);else if(".js"==d.toLowerCase().substring(d.length-3,d.length))try{if(mxStencilRegistry.allowEval){var f=mxUtils.load(d);null!=f&&200<=f.getStatus()&&299>=f.getStatus()&&eval.call(window,f.getText())}}catch(h){null!=window.console&&console.log("error in getStencil:",a,c,b,d,h)}}mxStencilRegistry.packages[c]=1}}else c=c.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+c+".xml",null);b=mxStencilRegistry.stencils[a]}}return b};
@@ -2794,17 +2797,17 @@ function(){for(var a="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",
(a+="orthogonalLoop="+Graph.prototype.defaultEdgeStyle.orthogonalLoop+";");null!=this.currentEdgeStyle.jettySize?a+="jettySize="+this.currentEdgeStyle.jettySize+";":null!=Graph.prototype.defaultEdgeStyle.jettySize&&(a+="jettySize="+Graph.prototype.defaultEdgeStyle.jettySize+";");"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.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,b){b=null!=b?b:{};for(var c=0;c<a.length;c++){var d=a[c];b[mxObjectIdentity.get(d)]=d.getId();for(var e=this.model.getChildCount(d),
f=0;f<e;f++)this.createCellLookup([this.model.getChildAt(d,f)],b)}return b};Graph.prototype.createCellMapping=function(a,b,c){c=null!=c?c:{};for(var d in a){var e=b[d];null==c[e]&&(c[e]=a[d].getId()||"")}return c};Graph.prototype.importGraphModel=function(a,b,c,d){b=null!=b?b:0;c=null!=c?c:0;var e=new mxCodec(a.ownerDocument),f=new mxGraphModel;e.decode(a,f);a=[];var e={},g={},h=f.getChildren(this.cloneCell(f.root,this.isCloneInvalidEdges(),e));if(null!=h){var k=this.createCellLookup([f.root]),h=
-h.slice();this.model.beginUpdate();try{if(1!=h.length||this.isCellLocked(this.getDefaultParent()))for(f=0;f<h.length;f++)m=this.model.getChildren(this.moveCells([h[f]],b,c,!1,this.model.getRoot())[0]),null!=m&&(a=a.concat(m));else{var m=f.getChildren(h[0]);null!=m&&(a=this.moveCells(m,b,c,!1,this.getDefaultParent()),g[f.getChildAt(f.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(e,k,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&(b=this.snap(b),c=this.snap(c));
-var P=this.getBoundingBoxFromGeometry(a,!0);null!=P&&this.moveCells(a,b-P.x,c-P.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var b={},c=this.cloneCells(a,null,b),d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(var f=new mxCodec,g=new mxGraphModel,h=g.getChildAt(g.getRoot(),0),e=0;e<c.length;e++){g.add(h,c[e]);var k=this.view.getState(a[e]);if(null!=k){var m=this.getCellGeometry(c[e]);null!=m&&m.relative&&!this.model.isEdge(a[e])&&null==d.get(this.model.getParent(a[e]))&&
-(m.offset=null,m.relative=!1,m.x=k.x/k.view.scale-k.view.translate.x,m.y=k.y/k.view.scale-k.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 k=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 k.apply(this,arguments)&&(null==b||!this.isTable(b))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,b,c,d,e,f,h,k){null==k&&(k=this.model.getParent(a),this.isTable(k)||this.isTableRow(k))&&(k=this.getCellAt(f,h,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[a,b,c,d,e,f,h,k]);this.model.setValue(c,"");var m=this.getChildCells(c,
-!0);for(b=0;b<m.length;b++){var l=this.getCellGeometry(m[b]);null!=l&&l.relative&&0<l.x&&this.model.remove(m[b])}var P=this.getChildCells(a,!0);for(b=0;b<P.length;b++)l=this.getCellGeometry(P[b]),null!=l&&l.relative&&0>=l.x&&this.model.remove(P[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 W=this.getCurrentCellStyle(n);null!=W&&"1"==W.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 m=Graph.prototype.selectCell;Graph.prototype.selectCell=function(a,b,c){if(b||c)m.apply(this,arguments);
+h.slice();this.model.beginUpdate();try{if(1!=h.length||this.isCellLocked(this.getDefaultParent()))for(f=0;f<h.length;f++)l=this.model.getChildren(this.moveCells([h[f]],b,c,!1,this.model.getRoot())[0]),null!=l&&(a=a.concat(l));else{var l=f.getChildren(h[0]);null!=l&&(a=this.moveCells(l,b,c,!1,this.getDefaultParent()),g[f.getChildAt(f.root,0).getId()]=this.getDefaultParent().getId())}if(null!=a&&(this.createCellMapping(e,k,g),this.updateCustomLinks(g,a),d)){this.isGridEnabled()&&(b=this.snap(b),c=this.snap(c));
+var M=this.getBoundingBoxFromGeometry(a,!0);null!=M&&this.moveCells(a,b-M.x,c-M.y)}}finally{this.model.endUpdate()}}return a};Graph.prototype.encodeCells=function(a){for(var b={},c=this.cloneCells(a,null,b),d=new mxDictionary,e=0;e<a.length;e++)d.put(a[e],!0);for(var f=new mxCodec,g=new mxGraphModel,h=g.getChildAt(g.getRoot(),0),e=0;e<c.length;e++){g.add(h,c[e]);var k=this.view.getState(a[e]);if(null!=k){var l=this.getCellGeometry(c[e]);null!=l&&l.relative&&!this.model.isEdge(a[e])&&null==d.get(this.model.getParent(a[e]))&&
+(l.offset=null,l.relative=!1,l.x=k.x/k.view.scale-k.view.translate.x,l.y=k.y/k.view.scale-k.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(b,this.createCellLookup(a)),c);return f.encode(g)};Graph.prototype.isSwimlane=function(a,b){var c=null;null==a||this.model.isEdge(a)||this.model.getParent(a)==this.model.getRoot()||(c=this.getCurrentCellStyle(a,b)[mxConstants.STYLE_SHAPE]);return c==mxConstants.SHAPE_SWIMLANE||"table"==c};var k=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 k.apply(this,arguments)&&(null==b||!this.isTable(b))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(a,b,c,d,e,f,h,k){null==k&&(k=this.model.getParent(a),this.isTable(k)||this.isTableRow(k))&&(k=this.getCellAt(f,h,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[a,b,c,d,e,f,h,k]);this.model.setValue(c,"");var l=this.getChildCells(c,
+!0);for(b=0;b<l.length;b++){var m=this.getCellGeometry(l[b]);null!=m&&m.relative&&0<m.x&&this.model.remove(l[b])}var M=this.getChildCells(a,!0);for(b=0;b<M.length;b++)m=this.getCellGeometry(M[b]),null!=m&&m.relative&&0>=m.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 W=this.getCurrentCellStyle(n);null!=W&&"1"==W.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]))}};Graph.prototype.swapUmlLifelines=function(a,b){var c=!1;
-if(null!=b&&1==a.length){var d=this.view.getState(b),e=this.view.getState(a[0]);if(null!=d&&null!=e&&"umlLifeline"==d.style.shape&&"umlLifeline"==e.style.shape&&(e=this.getCellGeometry(b),d=this.getCellGeometry(a[0]),null!=e&&null!=d)){c=e.clone();e=d.clone();e.x=c.x;e.y=c.y;c.x=d.x;c.y=d.y;this.model.beginUpdate();try{this.model.setGeometry(b,c),this.model.setGeometry(a[0],e)}finally{this.model.endUpdate()}c=!0}}return c};var l=Graph.prototype.moveCells;Graph.prototype.moveCells=function(a,b,c,d,
-e,f,g){if(!d&&this.swapUmlLifelines(a,e))return a;g=null!=g?g:{};if(this.isTable(e)){for(var h=[],k=0;k<a.length;k++)this.isTable(a[k])?h=h.concat(this.model.getChildCells(a[k],!0).reverse()):h.push(a[k]);a=h}this.model.beginUpdate();try{h=[];for(k=0;k<a.length;k++)if(null!=e&&this.isTableRow(a[k])){var m=this.model.getParent(a[k]),P=this.getCellGeometry(a[k]);this.isTable(m)&&h.push(m);if(null!=m&&null!=P&&this.isTable(m)&&this.isTable(e)&&(d||m!=e)){if(!d){var n=this.getCellGeometry(m);null!=n&&
-(n=n.clone(),n.height-=P.height,this.model.setGeometry(m,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=P.height,this.model.setGeometry(e,n));var W=this.model.getChildCells(e,!0);if(0<W.length){a[k]=d?this.cloneCell(a[k]):a[k];var p=this.model.getChildCells(a[k],!0),da=this.model.getChildCells(W[0],!0),r=da.length-p.length;if(0<r)for(var V=0;V<r;V++){var ha=this.cloneCell(p[p.length-1]);null!=ha&&(ha.value="",this.model.add(a[k],ha))}else if(0>r)for(V=0;V>r;V--)this.model.remove(p[p.length+
-V-1]);p=this.model.getChildCells(a[k],!0);for(V=0;V<da.length;V++){var u=this.getCellGeometry(da[V]),t=this.getCellGeometry(p[V]);null!=u&&null!=t&&(t=t.clone(),t.width=u.width,this.model.setGeometry(p[V],t))}}}}for(var v=l.apply(this,arguments),k=0;k<h.length;k++)!d&&this.model.contains(h[k])&&0==this.model.getChildCount(h[k])&&this.model.remove(h[k]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),v)}finally{this.model.endUpdate()}return v};var n=Graph.prototype.removeCells;
+if(null!=b&&1==a.length){var d=this.view.getState(b),e=this.view.getState(a[0]);if(null!=d&&null!=e&&"umlLifeline"==d.style.shape&&"umlLifeline"==e.style.shape&&(e=this.getCellGeometry(b),d=this.getCellGeometry(a[0]),null!=e&&null!=d)){c=e.clone();e=d.clone();e.x=c.x;e.y=c.y;c.x=d.x;c.y=d.y;this.model.beginUpdate();try{this.model.setGeometry(b,c),this.model.setGeometry(a[0],e)}finally{this.model.endUpdate()}c=!0}}return c};var m=Graph.prototype.moveCells;Graph.prototype.moveCells=function(a,b,c,d,
+e,f,g){if(!d&&this.swapUmlLifelines(a,e))return a;g=null!=g?g:{};if(this.isTable(e)){for(var h=[],k=0;k<a.length;k++)this.isTable(a[k])?h=h.concat(this.model.getChildCells(a[k],!0).reverse()):h.push(a[k]);a=h}this.model.beginUpdate();try{h=[];for(k=0;k<a.length;k++)if(null!=e&&this.isTableRow(a[k])){var l=this.model.getParent(a[k]),M=this.getCellGeometry(a[k]);this.isTable(l)&&h.push(l);if(null!=l&&null!=M&&this.isTable(l)&&this.isTable(e)&&(d||l!=e)){if(!d){var n=this.getCellGeometry(l);null!=n&&
+(n=n.clone(),n.height-=M.height,this.model.setGeometry(l,n))}n=this.getCellGeometry(e);null!=n&&(n=n.clone(),n.height+=M.height,this.model.setGeometry(e,n));var W=this.model.getChildCells(e,!0);if(0<W.length){a[k]=d?this.cloneCell(a[k]):a[k];var p=this.model.getChildCells(a[k],!0),da=this.model.getChildCells(W[0],!0),r=da.length-p.length;if(0<r)for(var V=0;V<r;V++){var ha=this.cloneCell(p[p.length-1]);null!=ha&&(ha.value="",this.model.add(a[k],ha))}else if(0>r)for(V=0;V>r;V--)this.model.remove(p[p.length+
+V-1]);p=this.model.getChildCells(a[k],!0);for(V=0;V<da.length;V++){var u=this.getCellGeometry(da[V]),t=this.getCellGeometry(p[V]);null!=u&&null!=t&&(t=t.clone(),t.width=u.width,this.model.setGeometry(p[V],t))}}}}for(var v=m.apply(this,arguments),k=0;k<h.length;k++)!d&&this.model.contains(h[k])&&0==this.model.getChildCount(h[k])&&this.model.remove(h[k]);d&&this.updateCustomLinks(this.createCellMapping(g,this.createCellLookup(a)),v)}finally{this.model.endUpdate()}return v};var n=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),h=0,k=0;k<
g.length;k++)0<=mxUtils.indexOf(a,g[k])&&h++;h==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,c){c=null!=c?c:new Graph;for(var d=0;d<b.length;d++)null!=b[d]&&c.updateCustomLinksForCell(a,b[d],c)};Graph.prototype.updateCustomLinksForCell=function(a,b){this.doUpdateCustomLinksForCell(a,b);for(var c=this.model.getChildCount(b),d=0;d<c;d++)this.updateCustomLinksForCell(a,this.model.getChildAt(b,d))};Graph.prototype.doUpdateCustomLinksForCell=
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(Aa){}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||
@@ -2812,8 +2815,8 @@ f==mxConstants.DIRECTION_SOUTH)f=d,d=e,e=f;c=a.shape.getConstraints(a.style,d,e)
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)&&!this.isCellLocked(a)};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),h=c.getTerminal(f,!1);c.setTerminal(f,h,!0);c.setTerminal(f,g,!1);var k=c.getGeometry(f);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();var m=k.getTerminalPoint(!0),l=k.getTerminalPoint(!1);k.setTerminalPoint(m,!1);k.setTerminalPoint(l,!0);c.setGeometry(f,k);var n=this.view.getState(f),P=this.view.getState(g),p=this.view.getState(h);if(null!=n){var W=null!=P?this.getConnectionConstraint(n,P,!0):null,r=null!=p?this.getConnectionConstraint(n,p,!1):null;this.setConnectionConstraint(f,
-g,!0,r);this.setConnectionConstraint(f,h,!1,W);var u=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),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,u,[f])}d.push(f)}}else if(c.isVertex(f)&&(k=this.getCellGeometry(f),null!=k)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){k=k.clone();k.x+=k.width/
+c.getTerminal(f,!0),h=c.getTerminal(f,!1);c.setTerminal(f,h,!0);c.setTerminal(f,g,!1);var k=c.getGeometry(f);if(null!=k){k=k.clone();null!=k.points&&k.points.reverse();var l=k.getTerminalPoint(!0),m=k.getTerminalPoint(!1);k.setTerminalPoint(l,!1);k.setTerminalPoint(m,!0);c.setGeometry(f,k);var M=this.view.getState(f),n=this.view.getState(g),p=this.view.getState(h);if(null!=M){var W=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,h,!1,W);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)&&(k=this.getCellGeometry(f),null!=k)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){k=k.clone();k.x+=k.width/
2-k.height/2;k.y+=k.height/2-k.width/2;var t=k.width;k.width=k.height;k.height=t;c.setGeometry(f,k)}var v=this.view.getState(f);if(null!=v){var Q=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],F=mxUtils.getValue(v.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,Q[mxUtils.mod(mxUtils.indexOf(Q,F)+(b?-1:1),Q.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=function(a){a=this.model.getDescendants(a);if(0<a.length)for(var b=0;b<a.length;b++){var c=this.view.getState(a[b]);null!=c&&null!=c.shape&&null!=c.shape.stencil&&
@@ -2838,19 +2841,19 @@ c&&"a"!=c.nodeName.toLowerCase();)c=c.parentNode;null!=c?this.clear():(null!=g.t
g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&(null==d.sourceState||!d.isSource(d.sourceState.control))&&((mxEvent.isLeftMouseButton(h)||mxEvent.isMiddleMouseButton(h))&&!mxEvent.isPopupTrigger(h)||mxEvent.isTouchEvent(h))&&(null!=this.currentLink?(e=g.isBlankLink(this.currentLink),"data:"!==this.currentLink.substring(0,5)&&e||null==b||b(h,this.currentLink),mxEvent.isConsumed(h)||(h=null!=this.currentTarget?this.currentTarget:mxEvent.isMiddleMouseButton(h)?"_blank":
e?g.linkTarget:"_top",g.openLink(this.currentLink,h),d.consume())):null!=c&&!d.isConsumed()&&Math.abs(this.scrollLeft-g.container.scrollLeft)<f&&Math.abs(this.scrollTop-g.container.scrollTop)<f&&Math.abs(this.startX-d.getGraphX())<f&&Math.abs(this.startY-d.getGraphY())<f&&c(d.getEvent()));this.clear()},activate:function(a){this.currentLink=g.getAbsoluteUrl(g.getLinkForCell(a.cell));null!=this.currentLink&&(this.currentTarget=g.getLinkTargetForCell(a.cell),g.container.style.cursor="pointer",null!=
this.highlight&&this.highlight.highlight(a))},clear:function(){null!=g.container&&(g.container.style.cursor=e);this.currentLink=this.currentState=this.currentTarget=null;null!=this.highlight&&this.highlight.hide();null!=g.tooltipHandler&&g.tooltipHandler.hide()}};g.click=function(a){};g.addMouseListener(h);mxEvent.addListener(document,"mouseleave",function(a){h.clear()})};Graph.prototype.duplicateCells=function(a,b){a=null!=a?a:this.getSelectionCells();b=null!=b?b:!0;for(var c=0;c<a.length;c++)this.isTableCell(a[c])&&
-(a[c]=this.model.getParent(a[c]));a=this.model.getTopmostCells(a);var d=this.getModel(),e=this.gridSize,f=[];d.beginUpdate();try{for(var g={},h=this.createCellLookup(a),k=this.cloneCells(a,!1,g,!0),c=0;c<a.length;c++){var m=d.getParent(a[c]);if(null!=m){var l=this.moveCells([k[c]],e,e,!1)[0];f.push(l);if(b)d.add(m,k[c]);else{var n=m.getIndex(a[c]);d.add(m,k[c],n+1)}if(this.isTable(m)){var P=this.getCellGeometry(k[c]),p=this.getCellGeometry(m);null!=P&&null!=p&&(p=p.clone(),p.height+=P.height,d.setGeometry(m,
+(a[c]=this.model.getParent(a[c]));a=this.model.getTopmostCells(a);var d=this.getModel(),e=this.gridSize,f=[];d.beginUpdate();try{for(var g={},h=this.createCellLookup(a),k=this.cloneCells(a,!1,g,!0),c=0;c<a.length;c++){var l=d.getParent(a[c]);if(null!=l){var m=this.moveCells([k[c]],e,e,!1)[0];f.push(m);if(b)d.add(l,k[c]);else{var n=l.getIndex(a[c]);d.add(l,k[c],n+1)}if(this.isTable(l)){var M=this.getCellGeometry(k[c]),p=this.getCellGeometry(l);null!=M&&null!=p&&(p=p.clone(),p.height+=M.height,d.setGeometry(l,
p))}}else f.push(k[c])}this.updateCustomLinks(this.createCellMapping(g,h),k,this);this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",k))}finally{d.endUpdate()}return f};Graph.prototype.insertImage=function(a,b,c){if(null!=a&&null!=this.cellEditor.textarea){for(var d=this.cellEditor.textarea.getElementsByTagName("img"),e=[],f=0;f<d.length;f++)e.push(d[f]);document.execCommand("insertimage",!1,a);a=this.cellEditor.textarea.getElementsByTagName("img");if(a.length==e.length+1)for(f=a.length-
1;0<=f;f--)if(0==f||a[f]!=e[f-1]){a[f].setAttribute("width",b);a[f].setAttribute("height",c);break}}};Graph.prototype.insertLink=function(a){if(null!=this.cellEditor.textarea)if(0==a.length)document.execCommand("unlink",!1);else if(mxClient.IS_FF){for(var b=this.cellEditor.textarea.getElementsByTagName("a"),c=[],d=0;d<b.length;d++)c.push(b[d]);document.execCommand("createlink",!1,mxUtils.trim(a));b=this.cellEditor.textarea.getElementsByTagName("a");if(b.length==c.length+1)for(d=b.length-1;0<=d;d--)if(b[d]!=
c[d-1]){for(b=b[d].getElementsByTagName("a");0<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 h=a?g.getCenterX():g.getCenterY(),d=null!=d?Math.max(d,h):h,e=null!=e?Math.min(e,h):h;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;h=this.view.scale;e=e/h-(a?g.x:g.y);d=d/h-(a?g.x:g.y);this.getModel().beginUpdate();
-try{for(var k=(d-e)/(c.length-1),d=e,f=1;f<c.length-1;f++){var m=this.view.getState(this.model.getParent(c[f].cell)),l=this.getCellGeometry(c[f].cell),d=d+k;null!=l&&null!=m&&(l=l.clone(),a?l.x=Math.round(d-l.width/2)-m.origin.x:l.y=Math.round(d-l.height/2)-m.origin.y,this.getModel().setGeometry(c[f].cell,l))}}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.parseBackgroundImage=function(a){var b=null;null!=a&&0<a.length&&(a=JSON.parse(a),b=new mxImage(a.src,a.width,a.height));return b};Graph.prototype.getBackgroundImageObject=function(a){return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,h,k,m,l,n,p,r){var P=null;if(null!=r)for(P=new mxDictionary,l=0;l<r.length;l++)P.put(r[l],!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;m=null!=m?m:!1;var W="page"==p?this.view.getBackgroundPageBounds():f&&null==P||d||"diagram"==p?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),da=this.view.scale;"diagram"==p&&null!=this.backgroundImage&&(W=mxRectangle.fromRectangle(W),W.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*da,(this.view.translate.y+this.backgroundImage.y)*da,
+try{for(var k=(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+k;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.parseBackgroundImage=function(a){var b=null;null!=a&&0<a.length&&(a=JSON.parse(a),b=new mxImage(a.src,a.width,a.height));return b};Graph.prototype.getBackgroundImageObject=function(a){return a};Graph.prototype.getSvg=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r){var M=null;if(null!=r)for(M=new mxDictionary,m=0;m<r.length;m++)M.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;l=null!=l?l:!1;var W="page"==p?this.view.getBackgroundPageBounds():f&&null==M||d||"diagram"==p?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),da=this.view.scale;"diagram"==p&&null!=this.backgroundImage&&(W=mxRectangle.fromRectangle(W),W.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*da,(this.view.translate.y+this.backgroundImage.y)*da,
this.backgroundImage.width*da,this.backgroundImage.height*da)));if(null==W)throw Error(mxResources.get("drawingEmpty"));var u=mxUtils.createXmlDocument(),t=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"svg"):u.createElement("svg");null!=a&&(null!=t.style?t.style.backgroundColor=a:t.setAttribute("style","background-color:"+a));null==u.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/",
-"xmlns:xlink",mxConstants.NS_XLINK);a=b/da;var v=Math.max(1,Math.ceil(W.width*a)+2*c)+(m&&0==c?5:0),V=Math.max(1,Math.ceil(W.height*a)+2*c)+(m&&0==c?5:0);t.setAttribute("version","1.1");t.setAttribute("width",v+"px");t.setAttribute("height",V+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+v+" "+V);u.appendChild(t);var ha=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"g"):u.createElement("g");t.appendChild(ha);var Q=this.createSvgCanvas(ha);Q.foOffset=e?-.5:0;Q.textOffset=
-e?-.5:0;Q.imageOffset=e?-.5:0;Q.translate(Math.floor(c/b-W.x/da),Math.floor(c/b-W.y/da));var F=document.createElement("div"),x=Q.getAlternateText;Q.getAlternateText=function(a,b,c,d,e,f,g,h,k,m,l,n,q){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(F.innerHTML=f,f=mxUtils.extractTextWithWhitespace(F.childNodes));for(var A=Math.ceil(2*d/this.state.fontSize),C=[],D=0,H=0;(0==A||D<A)&&H<f.length;){var Ca=f.charCodeAt(H);if(10==Ca||13==Ca){if(0<D)break}else C.push(f.charAt(H)),
+"xmlns:xlink",mxConstants.NS_XLINK);a=b/da;var v=Math.max(1,Math.ceil(W.width*a)+2*c)+(l&&0==c?5:0),V=Math.max(1,Math.ceil(W.height*a)+2*c)+(l&&0==c?5:0);t.setAttribute("version","1.1");t.setAttribute("width",v+"px");t.setAttribute("height",V+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+v+" "+V);u.appendChild(t);var ha=null!=u.createElementNS?u.createElementNS(mxConstants.NS_SVG,"g"):u.createElement("g");t.appendChild(ha);var Q=this.createSvgCanvas(ha);Q.foOffset=e?-.5:0;Q.textOffset=
+e?-.5:0;Q.imageOffset=e?-.5:0;Q.translate(Math.floor(c/b-W.x/da),Math.floor(c/b-W.y/da));var F=document.createElement("div"),x=Q.getAlternateText;Q.getAlternateText=function(a,b,c,d,e,f,g,h,k,l,m,n,q){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(F.innerHTML=f,f=mxUtils.extractTextWithWhitespace(F.childNodes));for(var A=Math.ceil(2*d/this.state.fontSize),C=[],D=0,H=0;(0==A||D<A)&&H<f.length;){var Ca=f.charCodeAt(H);if(10==Ca||13==Ca){if(0<D)break}else C.push(f.charAt(H)),
255>Ca&&D++;H++}C.length<f.length&&1<f.length-C.length&&(f=mxUtils.trim(C.join(""))+"...");return f}catch(db){return x.apply(this,arguments)}else return x.apply(this,arguments)};var y=this.backgroundImage;if(null!=y){b=da/b;var B=this.view.translate,w=new mxRectangle((y.x+B.x)*b,(y.y+B.y)*b,y.width*b,y.height*b);mxUtils.intersects(W,w)&&Q.image(y.x+B.x,y.y+B.y,y.width,y.height,y.src,!0)}Q.scale(a);Q.textEnabled=g;h=null!=h?h:this.createSvgImageExport();var G=h.drawCellState,z=h.getLinkForCellState;
-h.getLinkForCellState=function(a,b){var c=z.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};h.getLinkTargetForCellState=function(a,b){return a.view.graph.getLinkTargetForCell(a.cell)};h.drawCellState=function(a,b){for(var c=a.view.graph,d=null!=P?P.get(a.cell):c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!(f&&null==P||d)&&null!=e;)d=null!=P?P.get(e):c.isCellSelected(e),e=c.model.getParent(e);(f&&null==P||d)&&G.apply(this,arguments)};h.drawState(this.getView().getState(this.model.root),
+h.getLinkForCellState=function(a,b){var c=z.apply(this,arguments);return null==c||a.view.graph.isCustomLink(c)?null:c};h.getLinkTargetForCellState=function(a,b){return a.view.graph.getLinkTargetForCell(a.cell)};h.drawCellState=function(a,b){for(var c=a.view.graph,d=null!=M?M.get(a.cell):c.isCellSelected(a.cell),e=c.model.getParent(a.cell);!(f&&null==M||d)&&null!=e;)d=null!=M?M.get(e):c.isCellSelected(e),e=c.model.getParent(e);(f&&null==M||d)&&G.apply(this,arguments)};h.drawState(this.getView().getState(this.model.root),
Q);this.updateSvgLinks(t,k,!0);this.addForeignObjectWarning(Q,t);return t}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);
@@ -2858,12 +2861,12 @@ a.pointerEvents=!0;return a};Graph.prototype.getSelectedElement=function(){var a
this.cellEditor.textarea.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT&&(a=this.cellEditor.textarea.firstChild);return a};Graph.prototype.getParentByName=function(a,b,c){for(;null!=a&&a.nodeName!=b;){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.getParentByNames=function(a,b,c){for(;null!=a&&!(0<=mxUtils.indexOf(b,a.nodeName));){if(a==c)return null;a=a.parentNode}return a};Graph.prototype.selectNode=function(a){var b=null;if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&
b.rangeCount){var c=document.createRange();c.selectNode(a);b.removeAllRanges();b.addRange(c)}}else(b=document.selection)&&"Control"!=b.type&&(a=b.createRange(),a.collapse(!0),c=b.createRange(),c.setEndPoint("StartToStart",a),c.select())};Graph.prototype.deleteCells=function(a,b){var c=null;if(null!=a&&0<a.length){this.model.beginUpdate();try{for(var d=0;d<a.length;d++){var e=this.model.getParent(a[d]);if(this.isTable(e)){var f=this.getCellGeometry(a[d]),g=this.getCellGeometry(e);null!=f&&null!=g&&
(g=g.clone(),g.height-=f.height,this.model.setGeometry(e,g))}}var h=this.selectParentAfterDelete?this.model.getParents(a):null;this.removeCells(a,b)}finally{this.model.endUpdate()}if(null!=h)for(c=[],d=0;d<h.length;d++)this.model.contains(h[d])&&(this.model.isVertex(h[d])||this.model.isEdge(h[d]))&&c.push(h[d])}return c};Graph.prototype.insertTableColumn=function(a,b){var c=this.getModel();c.beginUpdate();try{var d=a,e=0;if(this.isTableCell(a))var f=c.getParent(a),d=c.getParent(f),e=mxUtils.indexOf(c.getChildCells(f,
-!0),a);else this.isTableRow(a)?d=c.getParent(a):a=c.getChildCells(d,!0)[0],b||(e=c.getChildCells(a,!0).length-1);for(var g=c.getChildCells(d,!0),h=Graph.minTableColumnWidth,f=0;f<g.length;f++){var k=c.getChildCells(g[f],!0)[e],m=c.cloneCell(k,!1),l=this.getCellGeometry(m);m.value=null;m.style=mxUtils.setStyle(mxUtils.setStyle(m.style,"rowspan",null),"colspan",null);if(null!=l){null!=l.alternateBounds&&(l.width=l.alternateBounds.width,l.height=l.alternateBounds.height,l.alternateBounds=null);var h=
-l.width,n=this.getCellGeometry(g[f]);null!=n&&(l.height=n.height)}c.add(g[f],m,e+(b?0:1))}var p=this.getCellGeometry(d);null!=p&&(p=p.clone(),p.width+=h,c.setGeometry(d,p))}finally{c.endUpdate()}};Graph.prototype.deleteLane=function(a){var b=this.getModel();b.beginUpdate();try{var c=null,c="stackLayout"==this.getCurrentCellStyle(a).childLayout?a:b.getParent(a),d=b.getChildCells(c,!0);0==d.length?b.remove(c):(c==a&&(a=d[d.length-1]),b.remove(a))}finally{b.endUpdate()}};Graph.prototype.insertLane=function(a,
+!0),a);else this.isTableRow(a)?d=c.getParent(a):a=c.getChildCells(d,!0)[0],b||(e=c.getChildCells(a,!0).length-1);for(var g=c.getChildCells(d,!0),h=Graph.minTableColumnWidth,f=0;f<g.length;f++){var k=c.getChildCells(g[f],!0)[e],l=c.cloneCell(k,!1),m=this.getCellGeometry(l);l.value=null;l.style=mxUtils.setStyle(mxUtils.setStyle(l.style,"rowspan",null),"colspan",null);if(null!=m){null!=m.alternateBounds&&(m.width=m.alternateBounds.width,m.height=m.alternateBounds.height,m.alternateBounds=null);var h=
+m.width,n=this.getCellGeometry(g[f]);null!=n&&(m.height=n.height)}c.add(g[f],l,e+(b?0:1))}var p=this.getCellGeometry(d);null!=p&&(p=p.clone(),p.width+=h,c.setGeometry(d,p))}finally{c.endUpdate()}};Graph.prototype.deleteLane=function(a){var b=this.getModel();b.beginUpdate();try{var c=null,c="stackLayout"==this.getCurrentCellStyle(a).childLayout?a:b.getParent(a),d=b.getChildCells(c,!0);0==d.length?b.remove(c):(c==a&&(a=d[d.length-1]),b.remove(a))}finally{b.endUpdate()}};Graph.prototype.insertLane=function(a,
b){var c=this.getModel();c.beginUpdate();try{var d=null,e=a;if("stackLayout"==this.getCurrentCellStyle(e).childLayout)var d=e,f=c.getChildCells(d,!0),e=f[b?0:f.length-1];else d=c.getParent(e);var g=d.getIndex(e),e=c.cloneCell(e,!1);e.value=null;c.add(d,e,g+(b?0:1))}finally{c.endUpdate()}};Graph.prototype.insertTableRow=function(a,b){var c=this.getModel();c.beginUpdate();try{var d=a,e=a;if(this.isTableCell(a))e=c.getParent(a),d=c.getParent(e);else if(this.isTableRow(a))d=c.getParent(a);else var f=
-c.getChildCells(d,!0),e=f[b?0:f.length-1];var g=c.getChildCells(e,!0),h=d.getIndex(e),e=c.cloneCell(e,!1);e.value=null;var k=this.getCellGeometry(e);if(null!=k){for(f=0;f<g.length;f++){a=c.cloneCell(g[f],!1);a.value=null;a.style=mxUtils.setStyle(mxUtils.setStyle(a.style,"rowspan",null),"colspan",null);var m=this.getCellGeometry(a);null!=m&&(null!=m.alternateBounds&&(m.width=m.alternateBounds.width,m.height=m.alternateBounds.height,m.alternateBounds=null),m.height=k.height);e.insert(a)}c.add(d,e,h+
-(b?0:1));var l=this.getCellGeometry(d);null!=l&&(l=l.clone(),l.height+=k.height,c.setGeometry(d,l))}}finally{c.endUpdate()}};Graph.prototype.deleteTableColumn=function(a){var b=this.getModel();b.beginUpdate();try{var c=a,d=a;this.isTableCell(a)&&(d=b.getParent(a));this.isTableRow(d)&&(c=b.getParent(d));var e=b.getChildCells(c,!0);if(0==e.length)b.remove(c);else{this.isTableRow(d)||(d=e[0]);var f=b.getChildCells(d,!0);if(1>=f.length)b.remove(c);else{var g=f.length-1;this.isTableCell(a)&&(g=mxUtils.indexOf(f,
-a));for(d=a=0;d<e.length;d++){var h=b.getChildCells(e[d],!0)[g];b.remove(h);var k=this.getCellGeometry(h);null!=k&&(a=Math.max(a,k.width))}var m=this.getCellGeometry(c);null!=m&&(m=m.clone(),m.width-=a,b.setGeometry(c,m))}}}finally{b.endUpdate()}};Graph.prototype.deleteTableRow=function(a){var b=this.getModel();b.beginUpdate();try{var c=a,d=a;this.isTableCell(a)&&(a=d=b.getParent(a));this.isTableRow(a)&&(c=b.getParent(d));var e=b.getChildCells(c,!0);if(1>=e.length)b.remove(c);else{this.isTableRow(d)||
+c.getChildCells(d,!0),e=f[b?0:f.length-1];var g=c.getChildCells(e,!0),h=d.getIndex(e),e=c.cloneCell(e,!1);e.value=null;var k=this.getCellGeometry(e);if(null!=k){for(f=0;f<g.length;f++){a=c.cloneCell(g[f],!1);a.value=null;a.style=mxUtils.setStyle(mxUtils.setStyle(a.style,"rowspan",null),"colspan",null);var l=this.getCellGeometry(a);null!=l&&(null!=l.alternateBounds&&(l.width=l.alternateBounds.width,l.height=l.alternateBounds.height,l.alternateBounds=null),l.height=k.height);e.insert(a)}c.add(d,e,h+
+(b?0:1));var m=this.getCellGeometry(d);null!=m&&(m=m.clone(),m.height+=k.height,c.setGeometry(d,m))}}finally{c.endUpdate()}};Graph.prototype.deleteTableColumn=function(a){var b=this.getModel();b.beginUpdate();try{var c=a,d=a;this.isTableCell(a)&&(d=b.getParent(a));this.isTableRow(d)&&(c=b.getParent(d));var e=b.getChildCells(c,!0);if(0==e.length)b.remove(c);else{this.isTableRow(d)||(d=e[0]);var f=b.getChildCells(d,!0);if(1>=f.length)b.remove(c);else{var g=f.length-1;this.isTableCell(a)&&(g=mxUtils.indexOf(f,
+a));for(d=a=0;d<e.length;d++){var h=b.getChildCells(e[d],!0)[g];b.remove(h);var k=this.getCellGeometry(h);null!=k&&(a=Math.max(a,k.width))}var l=this.getCellGeometry(c);null!=l&&(l=l.clone(),l.width-=a,b.setGeometry(c,l))}}}finally{b.endUpdate()}};Graph.prototype.deleteTableRow=function(a){var b=this.getModel();b.beginUpdate();try{var c=a,d=a;this.isTableCell(a)&&(a=d=b.getParent(a));this.isTableRow(a)&&(c=b.getParent(d));var e=b.getChildCells(c,!0);if(1>=e.length)b.remove(c);else{this.isTableRow(d)||
(d=e[e.length-1]);b.remove(d);a=0;var f=this.getCellGeometry(d);null!=f&&(a=f.height);var g=this.getCellGeometry(c);null!=g&&(g=g.clone(),g.height-=a,b.setGeometry(c,g))}}finally{b.endUpdate()}};Graph.prototype.insertRow=function(a,b){for(var c=a.tBodies[0],d=c.rows[0].cells,e=0,f=0;f<d.length;f++)var g=d[f].getAttribute("colspan"),e=e+(null!=g?parseInt(g):1);c=c.insertRow(b);for(f=0;f<e;f++)mxUtils.br(c.insertCell(-1));return c.cells[0]};Graph.prototype.deleteRow=function(a,b){a.tBodies[0].deleteRow(b)};
Graph.prototype.insertColumn=function(a,b){var c=a.tHead;if(null!=c)for(var d=0;d<c.rows.length;d++){var e=document.createElement("th");c.rows[d].appendChild(e);mxUtils.br(e)}c=a.tBodies[0];for(d=0;d<c.rows.length;d++)e=c.rows[d].insertCell(b),mxUtils.br(e);return c.rows[0].cells[0<=b?b:c.rows[0].cells.length-1]};Graph.prototype.deleteColumn=function(a,b){if(0<=b)for(var c=a.tBodies[0].rows,d=0;d<c.length;d++)c[d].cells.length>b&&c[d].deleteCell(b)};Graph.prototype.pasteHtmlAtCaret=function(a){var b;
if(window.getSelection){if(b=window.getSelection(),b.getRangeAt&&b.rangeCount){b=b.getRangeAt(0);b.deleteContents();var c=document.createElement("div");c.innerHTML=a;a=document.createDocumentFragment();for(var d;d=c.firstChild;)lastNode=a.appendChild(d);b.insertNode(a)}}else(b=document.selection)&&"Control"!=b.type&&b.createRange().pasteHTML(a)};Graph.prototype.createLinkForHint=function(a,b){function c(a,b){a.length>b&&(a=a.substring(0,Math.round(b/2))+"..."+a.substring(a.length-Math.round(b/4)));
@@ -2890,7 +2893,7 @@ a){var c=a.view.scale;this.bounds=mxRectangle.fromRectangle(a);if(0==this.bounds
4)/c)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/c)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight<this.textarea.offsetHeight&&(this.textarea.style.height=Math.round(this.bounds.height/c)+(this.textarea.offsetHeight-this.textarea.clientHeight)+"px",this.bounds.height=parseInt(this.textarea.style.height)*c);this.textarea.clientWidth<this.textarea.offsetWidth&&(this.textarea.style.width=Math.round(this.bounds.width/c)+(this.textarea.offsetWidth-this.textarea.clientWidth)+
"px",this.bounds.width=parseInt(this.textarea.style.width)*c);this.textarea.style.left=Math.round(this.bounds.x)+"px";this.textarea.style.top=Math.round(this.bounds.y)+"px";mxUtils.setPrefixedStyle(this.textarea.style,"transform","scale("+c+","+c+")")}else this.textarea.style.height="",this.textarea.style.overflow="",w.apply(this,arguments)};mxCellEditorGetInitialValue=mxCellEditor.prototype.getInitialValue;mxCellEditor.prototype.getInitialValue=function(a,b){if("0"==mxUtils.getValue(a.style,"html",
"0"))return mxCellEditorGetInitialValue.apply(this,arguments);var c=this.graph.getEditingValue(a.cell,b);"1"==mxUtils.getValue(a.style,"nl2Br","1")&&(c=c.replace(/\n/g,"<br/>"));return c=this.graph.sanitizeHtml(c,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(a){if("0"==mxUtils.getValue(a.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var b=this.graph.sanitizeHtml(this.textarea.innerHTML,!0);return b=
-"1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var y=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();y.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(P){}};var E=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();
+"1"==mxUtils.getValue(a.style,"nl2Br","1")?b.replace(/\r\n/g,"<br/>").replace(/\n/g,"<br/>"):b.replace(/\r\n/g,"").replace(/\n/g,"")};var y=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(a){this.codeViewMode&&this.toggleViewMode();y.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(M){}};var E=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(a,b){this.graph.getModel().beginUpdate();
try{E.apply(this,arguments),""==b&&this.graph.isCellDeletable(a.cell)&&0==this.graph.model.getChildCount(a.cell)&&this.graph.isTransparentState(a)&&this.graph.removeCells([a.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);null!=b&&b!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=
mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)||(b=mxUtils.getValue(a.style,mxConstants.STYLE_FILLCOLOR,null));b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getBorderColor=function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_BORDERCOLOR,null);null!=b&&b!=mxConstants.NONE||!(null!=a.cell.geometry&&0<a.cell.geometry.width)||0==mxUtils.getValue(a.style,mxConstants.STYLE_ROTATION,0)&&0!=mxUtils.getValue(a.style,mxConstants.STYLE_HORIZONTAL,1)||(b=mxUtils.getValue(a.style,
mxConstants.STYLE_STROKECOLOR,null));b==mxConstants.NONE&&(b=null);return b};mxCellEditor.prototype.getMinimumSize=function(a){var b=this.graph.getView().scale;return new mxRectangle(0,0,null==a.text?30:a.text.size*b+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(a,b){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(b.getEvent)};mxGraphView.prototype.formatUnitText=function(a){return a?
@@ -2901,15 +2904,15 @@ if(null!=e&&(c=this.graph.getCellStyle(d),"stackLayout"==c.childLayout)){var f=p
mxEdgeHandler.prototype.createParentHighlightShape=function(a){var b=z.apply(this,arguments);b.stroke="#C0C0C0";b.strokewidth=1;return b};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var a=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+a.x/2,this.bounds.y+this.rotationHandleVSpacing-a.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(a,b){return this.graph.isRecursiveVertexResize(a)&&
!mxEvent.isControlDown(b.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(a,b){return!(!this.graph.isSwimlane(a.cell)&&0<this.graph.model.getChildCount(a.cell)&&!this.graph.isCellCollapsed(a.cell)&&"1"==mxUtils.getValue(a.style,"recursiveResize","1")&&null==mxUtils.getValue(a.style,"childLayout",null))&&mxEvent.isControlDown(b.getEvent())||mxEvent.isMetaDown(b.getEvent())};var F=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return F.apply(this,
arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var K=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return K.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&
-!this.graph.isTableRow(this.state.cell)};var L=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(a){return a.tableHandle||L.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var N=mxVertexHandler.prototype.getSelectionBorderBounds;
-mxVertexHandler.prototype.getSelectionBorderBounds=function(){return N.apply(this,arguments).grow(-this.getSelectionBorderInset())};var J=null,R=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==J&&(J=mxCellRenderer.defaultShapes.tableLine);var a=R.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var b=function(a,b,c){for(var d=[],e=0;e<a.length;e++){var g=a[e];d.push(null==g?null:new mxPoint((k+g.x+b)*f,(m+g.y+c)*f))}return d},
-c=this,d=this.graph,e=d.model,f=d.view.scale,g=this.state,h=this.selectionBorder,k=this.state.origin.x+d.view.translate.x,m=this.state.origin.y+d.view.translate.y;null==a&&(a=[]);var l=d.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<l.length){for(var n=e.getChildCells(l[0].cell,!0),p=d.getTableLines(this.state.cell,!1,!0),r=d.getTableLines(this.state.cell,!0,!1),e=0;e<n.length;e++)mxUtils.bind(this,function(e){var k=d.view.getState(n[e]),m=d.getCellGeometry(n[e]),l=null!=m.alternateBounds?
-m.alternateBounds:m;null==k&&(k=new mxCellState(d.view,n[e],d.getCellStyle(n[e])),k.x=g.x+m.x*f,k.y=g.y+m.y*f,k.width=l.width*f,k.height=l.height*f,k.updateCachedBounds());var m=e<n.length-1?n[e+1]:null,m=null!=m?d.getCellGeometry(m):null,r=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=null!=p[e]?new J(p[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);m.isDashed=h.isDashed;m.svgStrokeTolerance++;k=new mxHandle(k,"col-resize",null,m);k.tableHandle=!0;var t=0;k.shape.node.parentNode.insertBefore(k.shape.node,
-k.shape.node.parentNode.firstChild);k.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==t?mxConstants.NONE:h.stroke;if(this.shape.constructor==J)this.shape.line=b(p[e],t,0),this.shape.updateBoundsFromLine();else{var a=d.getActualStartSize(g.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=this.state.x+(l.width+t)*f;this.shape.bounds.y=g.y+(e==n.length-1?0:a.y*f);this.shape.bounds.height=g.height-(e==n.length-1?0:(a.height+a.y)*f)}this.shape.redraw()}};var u=
-!1;k.setPosition=function(a,b,c){t=Math.max(Graph.minTableColumnWidth-l.width,b.x-a.x-l.width);u=mxEvent.isShiftDown(c.getEvent());null==r||u||(t=Math.min(t,r.width-Graph.minTableColumnWidth))};k.execute=function(a){if(0!=t)d.setTableColumnWidth(this.state.cell,t,u);else if(!c.blockDelayedSelection){var b=d.getCellAt(a.getGraphX(),a.getGraphY())||g.cell;d.graphHandler.selectCellForEvent(b,a)}t=0};k.positionChanged=function(){};k.reset=function(){t=0};a.push(k)})(e);for(e=0;e<l.length;e++)mxUtils.bind(this,
-function(e){var k=l[e],m=e<l.length-1?l[e+1]:null,m=null!=m?d.getCellGeometry(m.cell):null,n=null!=m&&null!=m.alternateBounds?m.alternateBounds:m,m=null!=r[e]?new J(r[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);m.isDashed=h.isDashed;m.svgStrokeTolerance++;k=new mxHandle(k,"row-resize",null,m);k.tableHandle=!0;var p=0;k.shape.node.parentNode.insertBefore(k.shape.node,k.shape.node.parentNode.firstChild);k.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=
-0==p?mxConstants.NONE:h.stroke;if(this.shape.constructor==J)this.shape.line=b(r[e],0,p),this.shape.updateBoundsFromLine();else{var a=d.getActualStartSize(g.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+p*f;this.shape.bounds.x=g.x+(e==l.length-1?0:a.x*f);this.shape.bounds.width=g.width-(e==l.length-1?0:a.width+a.x+f)}this.shape.redraw()}};var t=!1;k.setPosition=function(a,b,c){p=Math.max(Graph.minTableRowHeight-a.height,b.y-a.y-a.height);t=mxEvent.isShiftDown(c.getEvent());
-null!=n&&t&&(p=Math.min(p,n.height-Graph.minTableRowHeight))};k.execute=function(a){if(0!=p)d.setTableRowHeight(this.state.cell,p,!t);else if(!c.blockDelayedSelection){var b=d.getCellAt(a.getGraphX(),a.getGraphY())||g.cell;d.graphHandler.selectCellForEvent(b,a)}p=0};k.reset=function(){p=0};a.push(k)})(e)}}return null!=a?a.reverse():null};var Y=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){Y.apply(this,arguments);if(null!=this.moveHandles)for(var b=
+!this.graph.isTableRow(this.state.cell)};var L=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(a){return a.tableHandle||L.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var a=0;this.graph.isTableRow(this.state.cell)?a=1:this.graph.isTableCell(this.state.cell)&&(a=2);return a};var O=mxVertexHandler.prototype.getSelectionBorderBounds;
+mxVertexHandler.prototype.getSelectionBorderBounds=function(){return O.apply(this,arguments).grow(-this.getSelectionBorderInset())};var J=null,R=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==J&&(J=mxCellRenderer.defaultShapes.tableLine);var a=R.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var b=function(a,b,c){for(var d=[],e=0;e<a.length;e++){var g=a[e];d.push(null==g?null:new mxPoint((k+g.x+b)*f,(l+g.y+c)*f))}return d},
+c=this,d=this.graph,e=d.model,f=d.view.scale,g=this.state,h=this.selectionBorder,k=this.state.origin.x+d.view.translate.x,l=this.state.origin.y+d.view.translate.y;null==a&&(a=[]);var m=d.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<m.length){for(var n=e.getChildCells(m[0].cell,!0),p=d.getTableLines(this.state.cell,!1,!0),r=d.getTableLines(this.state.cell,!0,!1),e=0;e<n.length;e++)mxUtils.bind(this,function(e){var k=d.view.getState(n[e]),l=d.getCellGeometry(n[e]),m=null!=l.alternateBounds?
+l.alternateBounds:l;null==k&&(k=new mxCellState(d.view,n[e],d.getCellStyle(n[e])),k.x=g.x+l.x*f,k.y=g.y+l.y*f,k.width=m.width*f,k.height=m.height*f,k.updateCachedBounds());var l=e<n.length-1?n[e+1]:null,l=null!=l?d.getCellGeometry(l):null,r=null!=l&&null!=l.alternateBounds?l.alternateBounds:l,l=null!=p[e]?new J(p[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);l.isDashed=h.isDashed;l.svgStrokeTolerance++;k=new mxHandle(k,"col-resize",null,l);k.tableHandle=!0;var t=0;k.shape.node.parentNode.insertBefore(k.shape.node,
+k.shape.node.parentNode.firstChild);k.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==t?mxConstants.NONE:h.stroke;if(this.shape.constructor==J)this.shape.line=b(p[e],t,0),this.shape.updateBoundsFromLine();else{var a=d.getActualStartSize(g.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=this.state.x+(m.width+t)*f;this.shape.bounds.y=g.y+(e==n.length-1?0:a.y*f);this.shape.bounds.height=g.height-(e==n.length-1?0:(a.height+a.y)*f)}this.shape.redraw()}};var u=
+!1;k.setPosition=function(a,b,c){t=Math.max(Graph.minTableColumnWidth-m.width,b.x-a.x-m.width);u=mxEvent.isShiftDown(c.getEvent());null==r||u||(t=Math.min(t,r.width-Graph.minTableColumnWidth))};k.execute=function(a){if(0!=t)d.setTableColumnWidth(this.state.cell,t,u);else if(!c.blockDelayedSelection){var b=d.getCellAt(a.getGraphX(),a.getGraphY())||g.cell;d.graphHandler.selectCellForEvent(b,a)}t=0};k.positionChanged=function(){};k.reset=function(){t=0};a.push(k)})(e);for(e=0;e<m.length;e++)mxUtils.bind(this,
+function(e){var k=m[e],l=e<m.length-1?m[e+1]:null,l=null!=l?d.getCellGeometry(l.cell):null,n=null!=l&&null!=l.alternateBounds?l.alternateBounds:l,l=null!=r[e]?new J(r[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);l.isDashed=h.isDashed;l.svgStrokeTolerance++;k=new mxHandle(k,"row-resize",null,l);k.tableHandle=!0;var p=0;k.shape.node.parentNode.insertBefore(k.shape.node,k.shape.node.parentNode.firstChild);k.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=
+0==p?mxConstants.NONE:h.stroke;if(this.shape.constructor==J)this.shape.line=b(r[e],0,p),this.shape.updateBoundsFromLine();else{var a=d.getActualStartSize(g.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+p*f;this.shape.bounds.x=g.x+(e==m.length-1?0:a.x*f);this.shape.bounds.width=g.width-(e==m.length-1?0:a.width+a.x+f)}this.shape.redraw()}};var t=!1;k.setPosition=function(a,b,c){p=Math.max(Graph.minTableRowHeight-a.height,b.y-a.y-a.height);t=mxEvent.isShiftDown(c.getEvent());
+null!=n&&t&&(p=Math.min(p,n.height-Graph.minTableRowHeight))};k.execute=function(a){if(0!=p)d.setTableRowHeight(this.state.cell,p,!t);else if(!c.blockDelayedSelection){var b=d.getCellAt(a.getGraphX(),a.getGraphY())||g.cell;d.graphHandler.selectCellForEvent(b,a)}p=0};k.reset=function(){p=0};a.push(k)})(e)}}return null!=a?a.reverse():null};var Z=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(a){Z.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,
@@ -2917,7 +2920,7 @@ b)))};mxVertexHandler.prototype.refresh=function(){if(null!=this.customHandles){
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=ca.apply(this,arguments);return a};mxVertexHandler.prototype.updateHint=function(c){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{c=
this.state.view.scale;var d=this.state.view.unit;this.hint.innerHTML=b(this.roundLength(this.bounds.width/c),d)+" x "+b(this.roundLength(this.bounds.height/c),d)}c=mxUtils.getBoundingBox(this.bounds,null!=this.currentAlpha?this.currentAlpha:this.state.style[mxConstants.STYLE_ROTATION]||"0");null==c&&(c=this.bounds);this.hint.style.left=c.x+Math.round((c.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=c.y+c.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 O=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,b){O.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 S=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
+mxVertexHandler.prototype.removeHint=function(){mxGraphHandler.prototype.removeHint.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.display="")};var P=mxEdgeHandler.prototype.mouseMove;mxEdgeHandler.prototype.mouseMove=function(a,b){P.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 S=mxEdgeHandler.prototype.mouseUp;mxEdgeHandler.prototype.mouseUp=
function(a,b){S.apply(this,arguments);null!=this.linkHint&&"none"==this.linkHint.style.display&&(this.linkHint.style.display="")};mxEdgeHandler.prototype.updateHint=function(c,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=b(g,f)+", "+b(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(c.getGraphX()-this.hint.clientWidth/2)+"px";this.hint.style.top=Math.max(c.getGraphY(),d.y)+Editor.hintOffset+"px";null!=this.linkHint&&(this.linkHint.style.display="none")};Graph.prototype.expandedImage=
Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="50%" y1="0%" x2="50%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 2 4.5 L 7 4.5 z" stroke="#000"/>');Graph.prototype.collapsedImage=Graph.createSvgImage(9,9,'<defs><linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="30%" style="stop-color:#f0f0f0;" /><stop offset="100%" style="stop-color:#AFB0B6;" /></linearGradient></defs><rect x="0" y="0" width="9" height="9" stroke="#8A94A5" fill="url(#grad1)" stroke-width="2"/><path d="M 4.5 2 L 4.5 7 M 2 4.5 L 7 4.5 z" stroke="#000"/>');
@@ -2933,7 +2936,7 @@ HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangl
function(a,b){U.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())&&mxEvent.isAltDown(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(this.isSpaceEvent(b)){this.graph.model.beginUpdate();try{for(var 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=
-this.graph.view.getState(k[c]),m=this.graph.getCellGeometry(k[c]);null!=h&&null!=m&&(m=m.clone(),m.translate(f,g),this.graph.model.setGeometry(k[c],m))}}finally{this.graph.model.endUpdate()}}else f=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(f,b.getEvent());b.consume()}}};mxRubberband.prototype.mouseMove=function(a,b){if(!b.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);c.x-=d.x;c.y-=d.y;
+this.graph.view.getState(k[c]),l=this.graph.getCellGeometry(k[c]);null!=h&&null!=l&&(l=l.clone(),l.translate(f,g),this.graph.model.setGeometry(k[c],l))}}finally{this.graph.model.endUpdate()}}else f=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(f,b.getEvent());b.consume()}}};mxRubberband.prototype.mouseMove=function(a,b){if(!b.isConsumed()&&null!=this.first){var c=mxUtils.getScrollOrigin(this.graph.container),d=mxUtils.getOffset(this.graph.container);c.x-=d.x;c.y-=d.y;
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),
@@ -2960,7 +2963,7 @@ b[0].bounds.y;b[1].redraw();b[2].bounds.x=b[0].bounds.x;b[2].bounds.y=this.state
"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 sa=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(){sa.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 Z=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(Z.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=
+this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);null!=this.editingHandler&&(this.graph.removeListener(this.editingHandler),this.editingHandler=null)};var Y=mxEdgeHandler.prototype.redrawHandles;mxEdgeHandler.prototype.redrawHandles=function(){if(null!=this.marker&&(Y.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 aa=mxEdgeHandler.prototype.reset;mxEdgeHandler.prototype.reset=function(){aa.apply(this,arguments);null!=this.linkHint&&(this.linkHint.style.visibility="")};var ba=mxEdgeHandler.prototype.destroy;mxEdgeHandler.prototype.destroy=function(){ba.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,b){this.editorUi=a;this.container=b};Format.inactiveTabBackgroundColor="#f1f3f4";Format.classicFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 0 8 L 10 2 L 5 8 L 10 14 Z M 0 8 L 24 8" stroke="#404040" fill="#404040"/>',32,20);Format.classicThinFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 0 8 L 8 4 L 3 8 L 8 12 Z M 0 8 L 24 8" stroke="#404040" fill="#404040"/>',32,20);
Format.openFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 8 0 L 0 8 L 8 16 M 0 8 L 24 8" stroke="#404040" fill="transparent"/>',32,20);Format.openThinFilledMarkerImage=Graph.createSvgImage(20,22,'<path transform="translate(4,2)" stroke-width="2" d="M 8 4 L 0 8 L 8 12 M 0 8 L 24 8" stroke="#404040" fill="transparent"/>',32,20);
@@ -2985,31 +2988,31 @@ Format.prototype.init=function(){var a=this.editorUi,b=a.editor,c=b.graph;this.u
this.update);this.refresh()};Format.prototype.clear=function(){this.container.innerHTML="";if(null!=this.panels)for(var a=0;a<this.panels.length;a++)this.panels[a].destroy();this.panels=[]};Format.prototype.refresh=function(){null!=this.pendingRefresh&&(window.clearTimeout(this.pendingRefresh),this.pendingRefresh=null);this.pendingRefresh=window.setTimeout(mxUtils.bind(this,function(){this.immediateRefresh()}))};
Format.prototype.immediateRefresh=function(){if("0px"!=this.container.style.width){this.clear();var a=this.editorUi,b=a.editor.graph,c=document.createElement("div");c.style.whiteSpace="nowrap";c.style.color="rgb(112, 112, 112)";c.style.textAlign="left";c.style.cursor="default";var e=document.createElement("div");e.className="geFormatSection";e.style.textAlign="center";e.style.fontWeight="bold";e.style.paddingTop="8px";e.style.fontSize="13px";e.style.borderWidth="0px 0px 1px 1px";e.style.borderStyle=
"solid";e.style.display="inline-block";e.style.height="25px";e.style.overflow="hidden";e.style.width="100%";this.container.appendChild(c);mxEvent.addListener(e,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));var d=a.getSelectionState(),f=d.containsLabel,h=null,k=null,g=mxUtils.bind(this,function(a,c,d,e){var g=mxUtils.bind(this,function(e){h!=a&&(f?this.labelIndex=d:b.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",k!=c&&(null!=k&&(k.style.display="none"),k=c,k.style.display=""))});mxEvent.addListener(a,"click",g);mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));(e&&null==h||d==(f?this.labelIndex:b.isSelectionEmpty()?this.diagramIndex:this.currentIndex))&&g()}),m=0;if(b.isSelectionEmpty()){mxUtils.write(e,mxResources.get("diagram"));
-e.style.borderLeftWidth="0px";c.appendChild(e);d=c.cloneNode(!1);this.panels.push(new DiagramFormatPanel(this,a,d));this.container.appendChild(d);if(null!=Editor.styles){d.style.display="none";e.style.width=this.showCloseButton?"106px":"50%";e.style.cursor="pointer";e.style.backgroundColor=Format.inactiveTabBackgroundColor;var l=e.cloneNode(!1);l.style.borderLeftWidth="1px";l.style.borderRightWidth="1px";l.style.backgroundColor=Format.inactiveTabBackgroundColor;g(e,d,m++);var n=c.cloneNode(!1);n.style.display=
-"none";mxUtils.write(l,mxResources.get("style"));c.appendChild(l);this.panels.push(new DiagramStylePanel(this,a,n));this.container.appendChild(n);g(l,n,m++)}this.showCloseButton&&(l=e.cloneNode(!1),l.style.borderLeftWidth="1px",l.style.borderRightWidth="1px",l.style.borderBottomWidth="1px",l.style.backgroundColor=Format.inactiveTabBackgroundColor,l.style.position="absolute",l.style.right="0px",l.style.top="0px",l.style.width="25px",g=document.createElement("img"),g.setAttribute("border","0"),g.setAttribute("src",
-Dialog.prototype.closeImage),g.setAttribute("title",mxResources.get("hide")),g.style.position="absolute",g.style.display="block",g.style.right="0px",g.style.top="8px",g.style.cursor="pointer",g.style.marginTop="1px",g.style.marginRight="6px",g.style.border="1px solid transparent",g.style.padding="1px",g.style.opacity=.5,l.appendChild(g),mxEvent.addListener(g,"click",function(){a.actions.get("formatPanel").funct()}),c.appendChild(l))}else if(b.isEditing())mxUtils.write(e,mxResources.get("text")),c.appendChild(e),
-this.panels.push(new TextFormatPanel(this,a,c));else{e.style.backgroundColor=Format.inactiveTabBackgroundColor;e.style.borderLeftWidth="1px";e.style.cursor="pointer";e.style.width=f||0==d.cells.length?"50%":"33.3%";var l=e.cloneNode(!1),p=l.cloneNode(!1);l.style.backgroundColor=Format.inactiveTabBackgroundColor;p.style.backgroundColor=Format.inactiveTabBackgroundColor;f?l.style.borderLeftWidth="0px":(e.style.borderLeftWidth="0px",mxUtils.write(e,mxResources.get("style")),c.appendChild(e),n=c.cloneNode(!1),
-n.style.display="none",this.panels.push(new StyleFormatPanel(this,a,n)),this.container.appendChild(n),g(e,n,m++));mxUtils.write(l,mxResources.get("text"));c.appendChild(l);e=c.cloneNode(!1);e.style.display="none";this.panels.push(new TextFormatPanel(this,a,e));this.container.appendChild(e);mxUtils.write(p,mxResources.get("arrange"));c.appendChild(p);c=c.cloneNode(!1);c.style.display="none";this.panels.push(new ArrangePanel(this,a,c));this.container.appendChild(c);0<d.cells.length?g(l,e,m++):l.style.display=
-"none";g(p,c,m++,!0)}}};BaseFormatPanel=function(a,b,c){this.format=a;this.editorUi=b;this.container=c;this.listeners=[]};BaseFormatPanel.prototype.buttonBackgroundColor="white";
-BaseFormatPanel.prototype.installInputHandler=function(a,b,c,e,d,f,h,k){f=null!=f?f:"";k=null!=k?k:!1;var g=this.editorUi,m=g.editor.graph;e=null!=e?e:1;d=null!=d?d:999;var l=null,n=!1,p=mxUtils.bind(this,function(p){var r=k?parseFloat(a.value):parseInt(a.value);isNaN(r)||b!=mxConstants.STYLE_ROTATION||(r=mxUtils.mod(Math.round(100*r),36E3)/100);r=Math.min(d,Math.max(e,isNaN(r)?c:r));if(m.cellEditor.isContentEditing()&&h)n||(n=!0,null!=l&&(m.cellEditor.restoreSelection(l),l=null),h(r),a.value=r+f,
-n=!1);else if(r!=mxUtils.getValue(g.getSelectionState().style,b,c)){m.isEditing()&&m.stopEditing(!0);m.getModel().beginUpdate();try{var v=g.getSelectionState().cells;m.setCellStyles(b,r,v);b==mxConstants.STYLE_FONTSIZE&&m.updateLabelElements(v,function(a){a.style.fontSize=r+"px";a.removeAttribute("size")});for(var t=0;t<v.length;t++)0==m.model.getChildCount(v[t])&&m.autoSizeCell(v[t],!1);g.fireEvent(new mxEventObject("styleChanged","keys",[b],"values",[r],"cells",v))}finally{m.getModel().endUpdate()}}a.value=
-r+f;mxEvent.consume(p)});h&&m.cellEditor.isContentEditing()&&(mxEvent.addListener(a,"mousedown",function(){document.activeElement==m.cellEditor.textarea&&(l=m.cellEditor.saveSelection())}),mxEvent.addListener(a,"touchstart",function(){document.activeElement==m.cellEditor.textarea&&(l=m.cellEditor.saveSelection())}));mxEvent.addListener(a,"change",p);mxEvent.addListener(a,"blur",p);return p};
+Format.inactiveTabBackgroundColor,h.style.borderBottomWidth="1px"),h=a,h.style.backgroundColor="",h.style.borderBottomWidth="0px",k!=c&&(null!=k&&(k.style.display="none"),k=c,k.style.display=""))});mxEvent.addListener(a,"click",g);mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(a){a.preventDefault()}));(e&&null==h||d==(f?this.labelIndex:b.isSelectionEmpty()?this.diagramIndex:this.currentIndex))&&g()}),l=0;if(b.isSelectionEmpty()){mxUtils.write(e,mxResources.get("diagram"));
+e.style.borderLeftWidth="0px";c.appendChild(e);d=c.cloneNode(!1);this.panels.push(new DiagramFormatPanel(this,a,d));this.container.appendChild(d);if(null!=Editor.styles){d.style.display="none";e.style.width=this.showCloseButton?"106px":"50%";e.style.cursor="pointer";e.style.backgroundColor=Format.inactiveTabBackgroundColor;var m=e.cloneNode(!1);m.style.borderLeftWidth="1px";m.style.borderRightWidth="1px";m.style.backgroundColor=Format.inactiveTabBackgroundColor;g(e,d,l++);var n=c.cloneNode(!1);n.style.display=
+"none";mxUtils.write(m,mxResources.get("style"));c.appendChild(m);this.panels.push(new DiagramStylePanel(this,a,n));this.container.appendChild(n);g(m,n,l++)}this.showCloseButton&&(m=e.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",g=document.createElement("img"),g.setAttribute("border","0"),g.setAttribute("src",
+Dialog.prototype.closeImage),g.setAttribute("title",mxResources.get("hide")),g.style.position="absolute",g.style.display="block",g.style.right="0px",g.style.top="8px",g.style.cursor="pointer",g.style.marginTop="1px",g.style.marginRight="6px",g.style.border="1px solid transparent",g.style.padding="1px",g.style.opacity=.5,m.appendChild(g),mxEvent.addListener(g,"click",function(){a.actions.get("formatPanel").funct()}),c.appendChild(m))}else if(b.isEditing())mxUtils.write(e,mxResources.get("text")),c.appendChild(e),
+this.panels.push(new TextFormatPanel(this,a,c));else{e.style.backgroundColor=Format.inactiveTabBackgroundColor;e.style.borderLeftWidth="1px";e.style.cursor="pointer";e.style.width=f||0==d.cells.length?"50%":"33.3%";var m=e.cloneNode(!1),p=m.cloneNode(!1);m.style.backgroundColor=Format.inactiveTabBackgroundColor;p.style.backgroundColor=Format.inactiveTabBackgroundColor;f?m.style.borderLeftWidth="0px":(e.style.borderLeftWidth="0px",mxUtils.write(e,mxResources.get("style")),c.appendChild(e),n=c.cloneNode(!1),
+n.style.display="none",this.panels.push(new StyleFormatPanel(this,a,n)),this.container.appendChild(n),g(e,n,l++));mxUtils.write(m,mxResources.get("text"));c.appendChild(m);e=c.cloneNode(!1);e.style.display="none";this.panels.push(new TextFormatPanel(this,a,e));this.container.appendChild(e);mxUtils.write(p,mxResources.get("arrange"));c.appendChild(p);c=c.cloneNode(!1);c.style.display="none";this.panels.push(new ArrangePanel(this,a,c));this.container.appendChild(c);0<d.cells.length?g(m,e,l++):m.style.display=
+"none";g(p,c,l++,!0)}}};BaseFormatPanel=function(a,b,c){this.format=a;this.editorUi=b;this.container=c;this.listeners=[]};BaseFormatPanel.prototype.buttonBackgroundColor="white";
+BaseFormatPanel.prototype.installInputHandler=function(a,b,c,e,d,f,h,k){f=null!=f?f:"";k=null!=k?k:!1;var g=this.editorUi,l=g.editor.graph;e=null!=e?e:1;d=null!=d?d:999;var m=null,n=!1,p=mxUtils.bind(this,function(p){var r=k?parseFloat(a.value):parseInt(a.value);isNaN(r)||b!=mxConstants.STYLE_ROTATION||(r=mxUtils.mod(Math.round(100*r),36E3)/100);r=Math.min(d,Math.max(e,isNaN(r)?c:r));if(l.cellEditor.isContentEditing()&&h)n||(n=!0,null!=m&&(l.cellEditor.restoreSelection(m),m=null),h(r),a.value=r+f,
+n=!1);else if(r!=mxUtils.getValue(g.getSelectionState().style,b,c)){l.isEditing()&&l.stopEditing(!0);l.getModel().beginUpdate();try{var v=g.getSelectionState().cells;l.setCellStyles(b,r,v);b==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);g.fireEvent(new mxEventObject("styleChanged","keys",[b],"values",[r],"cells",v))}finally{l.getModel().endUpdate()}}a.value=
+r+f;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.createPanel=function(){var a=document.createElement("div");a.className="geFormatSection";a.style.padding="12px 0px 12px 14px";return a};BaseFormatPanel.prototype.createTitle=function(a){var b=document.createElement("div");b.style.padding="0px 0px 6px 0px";b.style.whiteSpace="nowrap";b.style.overflow="hidden";b.style.width="200px";b.style.fontWeight="bold";mxUtils.write(b,a);return b};
BaseFormatPanel.prototype.addAction=function(a,b){var c=this.editorUi.actions.get(b),e=null;null!=c&&c.isEnabled()&&(e=mxUtils.button(c.label,function(a){c.funct(a,a)}),e.setAttribute("title",c.label+(null!=c.shortcut?" ("+c.shortcut+")":"")),e.style.marginBottom="2px",e.style.width="210px",a.appendChild(e),result=!0);return e};
BaseFormatPanel.prototype.addActions=function(a,b){for(var c=null,e=0,d=0;d<b.length;d++){var f=this.addAction(a,b[d]);null!=f&&(e++,0==mxUtils.mod(e,2)&&(c.style.marginRight="2px",c.style.width="104px",f.style.width="104px"),c=f)}0<e&&mxUtils.br(a);return e};
-BaseFormatPanel.prototype.createStepper=function(a,b,c,e,d,f,h){c=null!=c?c:1;e=null!=e?e:9;var k=10*c,g=document.createElement("div");mxUtils.setPrefixedStyle(g.style,"borderRadius","3px");g.style.border="1px solid rgb(192, 192, 192)";g.style.position="absolute";var m=document.createElement("div");m.style.borderBottom="1px solid rgb(192, 192, 192)";m.style.position="relative";m.style.height=e+"px";m.style.width="10px";m.className="geBtnUp";g.appendChild(m);var l=m.cloneNode(!1);l.style.border="none";
-l.style.height=e+"px";l.className="geBtnDown";g.appendChild(l);mxEvent.addGestureListeners(l,function(a){mxEvent.consume(a)},null,function(d){""==a.value&&(a.value=f||"2");var e=h?parseFloat(a.value):parseInt(a.value);isNaN(e)||(a.value=e-(mxEvent.isShiftDown(d)?k:c),null!=b&&b(d));mxEvent.consume(d)});mxEvent.addGestureListeners(m,function(a){mxEvent.consume(a)},null,function(d){""==a.value&&(a.value=f||"0");var e=h?parseFloat(a.value):parseInt(a.value);isNaN(e)||(a.value=e+(mxEvent.isShiftDown(d)?
+BaseFormatPanel.prototype.createStepper=function(a,b,c,e,d,f,h){c=null!=c?c:1;e=null!=e?e:9;var k=10*c,g=document.createElement("div");mxUtils.setPrefixedStyle(g.style,"borderRadius","3px");g.style.border="1px solid rgb(192, 192, 192)";g.style.position="absolute";var l=document.createElement("div");l.style.borderBottom="1px solid rgb(192, 192, 192)";l.style.position="relative";l.style.height=e+"px";l.style.width="10px";l.className="geBtnUp";g.appendChild(l);var m=l.cloneNode(!1);m.style.border="none";
+m.style.height=e+"px";m.className="geBtnDown";g.appendChild(m);mxEvent.addGestureListeners(m,function(a){mxEvent.consume(a)},null,function(d){""==a.value&&(a.value=f||"2");var e=h?parseFloat(a.value):parseInt(a.value);isNaN(e)||(a.value=e-(mxEvent.isShiftDown(d)?k:c),null!=b&&b(d));mxEvent.consume(d)});mxEvent.addGestureListeners(l,function(a){mxEvent.consume(a)},null,function(d){""==a.value&&(a.value=f||"0");var e=h?parseFloat(a.value):parseInt(a.value);isNaN(e)||(a.value=e+(mxEvent.isShiftDown(d)?
k:c),null!=b&&b(d));mxEvent.consume(d)});if(d){var n=null;mxEvent.addGestureListeners(g,function(a){mxEvent.consume(a)},null,function(a){if(null!=n){try{n.select()}catch(r){}n=null;mxEvent.consume(a)}})}else mxEvent.addListener(g,"click",function(a){mxEvent.consume(a)});return g};
BaseFormatPanel.prototype.createOption=function(a,b,c,e,d){var f=document.createElement("div");f.style.padding="3px 0px 3px 0px";f.style.whiteSpace="nowrap";f.style.textOverflow="ellipsis";f.style.overflow="hidden";f.style.width="200px";f.style.height="18px";var h=document.createElement("input");h.setAttribute("type","checkbox");h.style.margin="1px 6px 0px 0px";h.style.verticalAlign="top";f.appendChild(h);var k=document.createElement("span");k.style.verticalAlign="top";mxUtils.write(k,a);f.appendChild(k);
-var g=!1,m=b(),l=function(a){g||(g=!0,a?(h.setAttribute("checked","checked"),h.defaultChecked=!0,h.checked=!0):(h.removeAttribute("checked"),h.defaultChecked=!1,h.checked=!1),m!=a&&(m=a,b()!=m&&c(m)),g=!1)};mxEvent.addListener(f,"click",function(a){if("disabled"!=h.getAttribute("disabled")){a=mxEvent.getSource(a);if(a==f||a==k)h.checked=!h.checked;l(h.checked)}});l(m);null!=e&&(e.install(l),this.listeners.push(e));null!=d&&d(f);return f};
-BaseFormatPanel.prototype.createCellOption=function(a,b,c,e,d,f,h,k,g){var m=this.editorUi,l=m.editor.graph;e=null!=e?"null"==e?null:e:1;d=null!=d?"null"==d?null:d:0;var n=null!=g?l.getCommonStyle(g):m.getSelectionState().style;return this.createOption(a,function(){return mxUtils.getValue(n,b,c)!=d},function(a){k&&l.stopEditing();if(null!=h)h.funct();else{l.getModel().beginUpdate();try{var c=null!=g?g:m.getSelectionState().cells;a=a?e:d;l.setCellStyles(b,a,c);null!=f&&f(c,a);m.fireEvent(new mxEventObject("styleChanged",
-"keys",[b],"values",[a],"cells",c))}finally{l.getModel().endUpdate()}}},{install:function(a){this.listener=function(){a(mxUtils.getValue(n,b,c)!=d)};l.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){l.getModel().removeListener(this.listener)}})};
-BaseFormatPanel.prototype.createColorOption=function(a,b,c,e,d,f,h,k){var g=document.createElement("div");g.style.padding="3px 0px 3px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height="18px";var m=document.createElement("input");m.setAttribute("type","checkbox");m.style.margin="1px 6px 0px 0px";m.style.verticalAlign="top";h||g.appendChild(m);var l=document.createElement("span");l.style.verticalAlign="top";mxUtils.write(l,a);g.appendChild(l);var n=b(),
-p=!1,r=null,u=function(a,d,g){if(!p){var l="null"==e?null:e;p=!0;a=/(^#?[a-zA-Z0-9]*$)/.test(a)?a:l;var l=null!=a&&a!=mxConstants.NONE?a:l,t=document.createElement("div");t.style.width="36px";t.style.height="12px";t.style.margin="3px";t.style.border="1px solid black";t.style.backgroundColor="default"==l?k:l;r.innerHTML="";r.appendChild(t);null!=a&&a!=mxConstants.NONE&&1<a.length&&"string"===typeof a&&(l="#"==a.charAt(0)?a.substring(1).toUpperCase():a,l=ColorDialog.prototype.colorNames[l],r.setAttribute("title",
-null!=l?l+" (Shift+Click for Color Dropper)":"Shift+Click for Color Dropper"));null!=a&&a!=mxConstants.NONE?(m.setAttribute("checked","checked"),m.defaultChecked=!0,m.checked=!0):(m.removeAttribute("checked"),m.defaultChecked=!1,m.checked=!1);r.style.display=m.checked||h?"":"none";null!=f&&f("null"==a?null:a);n=a;d||(g||h||b()!=n)&&c("null"==n?null:n,n);p=!1}},v=document.createElement("input");v.setAttribute("type","color");v.style.visibility="hidden";v.style.width="0px";v.style.height="0px";v.style.border=
-"none";g.appendChild(v);r=mxUtils.button("",mxUtils.bind(this,function(a){var b=n;"default"==b&&(b=k);!mxEvent.isShiftDown(a)||mxClient.IS_IE||mxClient.IS_IE11?this.editorUi.pickColor(b,function(a){u(a,null,!0)},k):(v.value=b,v.click(),mxEvent.addListener(v,"input",function(){u(v.value,null,!0)}));mxEvent.consume(a)}));r.style.position="absolute";r.style.marginTop="-3px";r.style.left="178px";r.style.height="22px";r.className="geColorBtn";r.style.display=m.checked||h?"":"none";g.appendChild(r);a=null!=
-n&&"string"===typeof n&&"#"==n.charAt(0)?n.substring(1).toUpperCase():n;a=ColorDialog.prototype.colorNames[a];r.setAttribute("title",null!=a?a+" (Shift+Click for Color Dropper)":"Shift+Click for Color Dropper");mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==m||"INPUT"!=a.nodeName)a!=m&&(m.checked=!m.checked),m.checked||null==n||n==mxConstants.NONE||e==mxConstants.NONE||(e=n),u(m.checked?e:mxConstants.NONE)});u(n,!0);null!=d&&(d.install(u),this.listeners.push(d));return g};
+var g=!1,l=b(),m=function(a){g||(g=!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,b()!=l&&c(l)),g=!1)};mxEvent.addListener(f,"click",function(a){if("disabled"!=h.getAttribute("disabled")){a=mxEvent.getSource(a);if(a==f||a==k)h.checked=!h.checked;m(h.checked)}});m(l);null!=e&&(e.install(m),this.listeners.push(e));null!=d&&d(f);return f};
+BaseFormatPanel.prototype.createCellOption=function(a,b,c,e,d,f,h,k,g){var l=this.editorUi,m=l.editor.graph;e=null!=e?"null"==e?null:e:1;d=null!=d?"null"==d?null:d:0;var n=null!=g?m.getCommonStyle(g):l.getSelectionState().style;return this.createOption(a,function(){return mxUtils.getValue(n,b,c)!=d},function(a){k&&m.stopEditing();if(null!=h)h.funct();else{m.getModel().beginUpdate();try{var c=null!=g?g:l.getSelectionState().cells;a=a?e:d;m.setCellStyles(b,a,c);null!=f&&f(c,a);l.fireEvent(new mxEventObject("styleChanged",
+"keys",[b],"values",[a],"cells",c))}finally{m.getModel().endUpdate()}}},{install:function(a){this.listener=function(){a(mxUtils.getValue(n,b,c)!=d)};m.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){m.getModel().removeListener(this.listener)}})};
+BaseFormatPanel.prototype.createColorOption=function(a,b,c,e,d,f,h,k){var g=document.createElement("div");g.style.padding="3px 0px 3px 0px";g.style.whiteSpace="nowrap";g.style.overflow="hidden";g.style.width="200px";g.style.height="18px";var l=document.createElement("input");l.setAttribute("type","checkbox");l.style.margin="1px 6px 0px 0px";l.style.verticalAlign="top";h||g.appendChild(l);var m=document.createElement("span");m.style.verticalAlign="top";mxUtils.write(m,a);g.appendChild(m);var n=b(),
+p=!1,r=null,u=function(a,d,g){if(!p){var m="null"==e?null:e;p=!0;a=/(^#?[a-zA-Z0-9]*$)/.test(a)?a:m;var m=null!=a&&a!=mxConstants.NONE?a:m,t=document.createElement("div");t.style.width="36px";t.style.height="12px";t.style.margin="3px";t.style.border="1px solid black";t.style.backgroundColor="default"==m?k:m;r.innerHTML="";r.appendChild(t);null!=a&&a!=mxConstants.NONE&&1<a.length&&"string"===typeof a&&(m="#"==a.charAt(0)?a.substring(1).toUpperCase():a,m=ColorDialog.prototype.colorNames[m],r.setAttribute("title",
+null!=m?m+" (Shift+Click for Color Dropper)":"Shift+Click for Color Dropper"));null!=a&&a!=mxConstants.NONE?(l.setAttribute("checked","checked"),l.defaultChecked=!0,l.checked=!0):(l.removeAttribute("checked"),l.defaultChecked=!1,l.checked=!1);r.style.display=l.checked||h?"":"none";null!=f&&f("null"==a?null:a);n=a;d||(g||h||b()!=n)&&c("null"==n?null:n,n);p=!1}},v=document.createElement("input");v.setAttribute("type","color");v.style.visibility="hidden";v.style.width="0px";v.style.height="0px";v.style.border=
+"none";g.appendChild(v);r=mxUtils.button("",mxUtils.bind(this,function(a){var b=n;"default"==b&&(b=k);!mxEvent.isShiftDown(a)||mxClient.IS_IE||mxClient.IS_IE11?this.editorUi.pickColor(b,function(a){u(a,null,!0)},k):(v.value=b,v.click(),mxEvent.addListener(v,"input",function(){u(v.value,null,!0)}));mxEvent.consume(a)}));r.style.position="absolute";r.style.marginTop="-3px";r.style.left="178px";r.style.height="22px";r.className="geColorBtn";r.style.display=l.checked||h?"":"none";g.appendChild(r);a=null!=
+n&&"string"===typeof n&&"#"==n.charAt(0)?n.substring(1).toUpperCase():n;a=ColorDialog.prototype.colorNames[a];r.setAttribute("title",null!=a?a+" (Shift+Click for Color Dropper)":"Shift+Click for Color Dropper");mxEvent.addListener(g,"click",function(a){a=mxEvent.getSource(a);if(a==l||"INPUT"!=a.nodeName)a!=l&&(l.checked=!l.checked),l.checked||null==n||n==mxConstants.NONE||e==mxConstants.NONE||(e=n),u(l.checked?e:mxConstants.NONE)});u(n,!0);null!=d&&(d.install(u),this.listeners.push(d));return g};
BaseFormatPanel.prototype.createCellColorOption=function(a,b,c,e,d,f){var h=this.editorUi,k=h.editor.graph;return this.createColorOption(a,function(){var a=k.view.getState(h.getSelectionState().cells[0]);return null!=a?mxUtils.getValue(a.style,b,null):null},function(a,c){k.getModel().beginUpdate();try{var e=h.getSelectionState().cells;k.setCellStyles(b,a,e);null!=d&&d(a);h.fireEvent(new mxEventObject("styleChanged","keys",[b],"values",[a],"cells",e))}finally{k.getModel().endUpdate()}},c||mxConstants.NONE,
{install:function(a){this.listener=function(){var c=k.view.getState(h.getSelectionState().cells[0]);null!=c&&a(mxUtils.getValue(c.style,b,null),!0)};k.getModel().addListener(mxEvent.CHANGE,this.listener)},destroy:function(){k.getModel().removeListener(this.listener)}},e,null,f)};
BaseFormatPanel.prototype.addArrow=function(a,b){b=null!=b?b:10;var c=document.createElement("div");c.style.display="inline-block";c.style.paddingRight="4px";c.style.padding="6px";var e=10-b;2==e?c.style.paddingTop="6px":0<e?c.style.paddingTop=6-e+"px":c.style.marginTop="-2px";c.style.height=b+"px";c.style.borderLeft="1px solid #a0a0a0";e=document.createElement("img");e.setAttribute("border","0");e.setAttribute("valign","middle");e.setAttribute("src",Toolbar.prototype.dropDownImage);c.appendChild(e);
@@ -3017,8 +3020,8 @@ e=c.getElementsByTagName("img")[0];e.style.position="relative";e.style.left="1px
" geColorBtn";mxUtils.setPrefixedStyle(a.style,"borderRadius","3px");a.appendChild(c);return e};
BaseFormatPanel.prototype.addUnitInput=function(a,b,c,e,d,f,h,k,g){h=null!=h?h:0;b=document.createElement("input");b.style.position="absolute";b.style.textAlign="right";b.style.marginTop="-2px";b.style.left=228-c-e+"px";b.style.width=e+"px";b.style.height="21px";b.style.border="1px solid rgb(160, 160, 160)";b.style.borderRadius="4px";b.style.boxSizing="border-box";a.appendChild(b);e=this.createStepper(b,d,f,null,k,null,g);e.style.marginTop=h-2+"px";e.style.left=228-c+"px";a.appendChild(e);return b};
BaseFormatPanel.prototype.createRelativeOption=function(a,b,c,e,d){c=null!=c?c:52;var f=this.editorUi,h=f.editor.graph,k=this.createPanel();k.style.paddingTop="10px";k.style.paddingBottom="10px";mxUtils.write(k,a);k.style.fontWeight="bold";a=mxUtils.bind(this,function(a){if(null!=e)e(g);else{var c=parseInt(g.value),c=Math.min(100,Math.max(0,isNaN(c)?100:c)),d=h.view.getState(f.getSelectionState().cells[0]);null!=d&&c!=mxUtils.getValue(d.style,b,100)&&(100==c&&(c=null),d=f.getSelectionState().cells,
-h.setCellStyles(b,c,d),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[b],"values",[c],"cells",d)));g.value=(null!=c?c:"100")+" %"}mxEvent.consume(a)});var g=this.addUnitInput(k,"%",16,c,a,10,-15,null!=e);if(null!=b){var m=mxUtils.bind(this,function(a,c,d){if(d||g!=document.activeElement)a=f.getSelectionState(),a=parseInt(mxUtils.getValue(a.style,b,100)),g.value=isNaN(a)?"":a+" %"});mxEvent.addListener(g,"keydown",function(a){13==a.keyCode?(h.container.focus(),mxEvent.consume(a)):
-27==a.keyCode&&(m(null,null,!0),h.container.focus(),mxEvent.consume(a))});h.getModel().addListener(mxEvent.CHANGE,m);this.listeners.push({destroy:function(){h.getModel().removeListener(m)}});m()}mxEvent.addListener(g,"blur",a);mxEvent.addListener(g,"change",a);null!=d&&d(g);return k};
+h.setCellStyles(b,c,d),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[b],"values",[c],"cells",d)));g.value=(null!=c?c:"100")+" %"}mxEvent.consume(a)});var g=this.addUnitInput(k,"%",16,c,a,10,-15,null!=e);if(null!=b){var l=mxUtils.bind(this,function(a,c,d){if(d||g!=document.activeElement)a=f.getSelectionState(),a=parseInt(mxUtils.getValue(a.style,b,100)),g.value=isNaN(a)?"":a+" %"});mxEvent.addListener(g,"keydown",function(a){13==a.keyCode?(h.container.focus(),mxEvent.consume(a)):
+27==a.keyCode&&(l(null,null,!0),h.container.focus(),mxEvent.consume(a))});h.getModel().addListener(mxEvent.CHANGE,l);this.listeners.push({destroy:function(){h.getModel().removeListener(l)}});l()}mxEvent.addListener(g,"blur",a);mxEvent.addListener(g,"change",a);null!=d&&d(g);return k};
BaseFormatPanel.prototype.addLabel=function(a,b,c,e){e=null!=e?e:61;var d=document.createElement("div");mxUtils.write(d,b);d.style.position="absolute";d.style.left=240-c-e+"px";d.style.width=e+"px";d.style.marginTop="6px";d.style.textAlign="center";a.appendChild(d)};
BaseFormatPanel.prototype.addKeyHandler=function(a,b){mxEvent.addListener(a,"keydown",mxUtils.bind(this,function(a){13==a.keyCode?(this.editorUi.editor.graph.container.focus(),mxEvent.consume(a)):27==a.keyCode&&(null!=b&&b(null,null,!0),this.editorUi.editor.graph.container.focus(),mxEvent.consume(a))}))};
BaseFormatPanel.prototype.styleButtons=function(a){for(var b=0;b<a.length;b++)mxUtils.setPrefixedStyle(a[b].style,"borderRadius","3px"),mxUtils.setOpacity(a[b],100),a[b].style.border="1px solid #a0a0a0",a[b].style.padding="4px",a[b].style.paddingTop="3px",a[b].style.paddingRight="1px",a[b].style.margin="1px",a[b].style.marginRight="2px",a[b].style.width="24px",a[b].style.height="20px",a[b].className+=" geColorBtn"};
@@ -3027,9 +3030,9 @@ ArrangePanel.prototype.init=function(){var a=this.editorUi.getSelectionState();0
(this.container.appendChild(this.addAlign(this.createPanel())),this.container.appendChild(this.addDistribute(this.createPanel()))),this.container.appendChild(this.addTable(this.createPanel())));this.container.appendChild(this.addGroupOps(this.createPanel()));a.containsLabel&&(a=document.createElement("div"),a.style.width="100%",a.style.marginTop="0px",a.style.fontWeight="bold",a.style.padding="10px 0 0 14px",mxUtils.write(a,mxResources.get("style")),this.container.appendChild(a),new StyleFormatPanel(this.format,
this.editorUi,this.container))};
ArrangePanel.prototype.addTable=function(a){var b=this.editorUi,c=b.editor.graph,e=b.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="10px";var d=document.createElement("div");d.style.marginTop="2px";d.style.marginBottom="8px";d.style.fontWeight="bold";mxUtils.write(d,mxResources.get("table"));a.appendChild(d);d=document.createElement("div");d.style.position="relative";d.style.paddingLeft="0px";d.style.borderWidth="0px";d.style.width="220px";d.className="geToolbarContainer";var f=
-c.isTable(e.vertices[0])||c.isTableRow(e.vertices[0])||c.isTableCell(e.vertices[0]),h=c.isStack(e.vertices[0])||c.isStackChild(e.vertices[0]),k=f;h&&(f="0"==(c.isStack(e.vertices[0])?e.style:c.getCellStyle(c.model.getParent(e.vertices[0]))).horizontalStack,k=!f);var g=[];k&&(g=g.concat([b.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),mxUtils.bind(this,function(){try{h?c.insertLane(e.vertices[0],!0):c.insertTableColumn(e.vertices[0],!0)}catch(m){b.handleError(m)}}),
-d),b.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),mxUtils.bind(this,function(){try{h?c.insertLane(e.vertices[0],!1):c.insertTableColumn(e.vertices[0],!1)}catch(m){b.handleError(m)}}),d),b.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),mxUtils.bind(this,function(){try{h?c.deleteLane(e.vertices[0]):c.deleteTableColumn(e.vertices[0])}catch(m){b.handleError(m)}}),d)]));f&&(g=g.concat([b.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),
-mxUtils.bind(this,function(){try{h?c.insertLane(e.vertices[0],!0):c.insertTableRow(e.vertices[0],!0)}catch(m){b.handleError(m)}}),d),b.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),mxUtils.bind(this,function(){try{h?c.insertLane(e.vertices[0],!1):c.insertTableRow(e.vertices[0],!1)}catch(m){b.handleError(m)}}),d),b.toolbar.addButton("geSprite-deleterow",mxResources.get("deleteRow"),mxUtils.bind(this,function(){try{h?c.deleteLane(e.vertices[0]):c.deleteTableRow(e.vertices[0])}catch(m){b.handleError(m)}}),
+c.isTable(e.vertices[0])||c.isTableRow(e.vertices[0])||c.isTableCell(e.vertices[0]),h=c.isStack(e.vertices[0])||c.isStackChild(e.vertices[0]),k=f;h&&(f="0"==(c.isStack(e.vertices[0])?e.style:c.getCellStyle(c.model.getParent(e.vertices[0]))).horizontalStack,k=!f);var g=[];k&&(g=g.concat([b.toolbar.addButton("geSprite-insertcolumnbefore",mxResources.get("insertColumnBefore"),mxUtils.bind(this,function(){try{h?c.insertLane(e.vertices[0],!0):c.insertTableColumn(e.vertices[0],!0)}catch(l){b.handleError(l)}}),
+d),b.toolbar.addButton("geSprite-insertcolumnafter",mxResources.get("insertColumnAfter"),mxUtils.bind(this,function(){try{h?c.insertLane(e.vertices[0],!1):c.insertTableColumn(e.vertices[0],!1)}catch(l){b.handleError(l)}}),d),b.toolbar.addButton("geSprite-deletecolumn",mxResources.get("deleteColumn"),mxUtils.bind(this,function(){try{h?c.deleteLane(e.vertices[0]):c.deleteTableColumn(e.vertices[0])}catch(l){b.handleError(l)}}),d)]));f&&(g=g.concat([b.toolbar.addButton("geSprite-insertrowbefore",mxResources.get("insertRowBefore"),
+mxUtils.bind(this,function(){try{h?c.insertLane(e.vertices[0],!0):c.insertTableRow(e.vertices[0],!0)}catch(l){b.handleError(l)}}),d),b.toolbar.addButton("geSprite-insertrowafter",mxResources.get("insertRowAfter"),mxUtils.bind(this,function(){try{h?c.insertLane(e.vertices[0],!1):c.insertTableRow(e.vertices[0],!1)}catch(l){b.handleError(l)}}),d),b.toolbar.addButton("geSprite-deleterow",mxResources.get("deleteRow"),mxUtils.bind(this,function(){try{h?c.deleteLane(e.vertices[0]):c.deleteTableRow(e.vertices[0])}catch(l){b.handleError(l)}}),
d)]));0<g.length?(this.styleButtons(g),a.appendChild(d),3<g.length&&(g[2].style.marginRight="10px")):a.style.display="none";return a};ArrangePanel.prototype.addLayerOps=function(a){this.addActions(a,["toFront","toBack"]);this.addActions(a,["bringForward","sendBackward"]);return a};
ArrangePanel.prototype.addGroupOps=function(a){var b=this.editorUi,c=b.editor.graph,e=b.getSelectionState(),d=null;a.style.paddingTop="8px";a.style.paddingBottom="6px";var f=this.addActions(a,["group","ungroup"]),f=f+this.addActions(a,["removeFromGroup"]),f=f+this.addActions(a,["copySize","pasteSize"]);0<c.getSelectionCount()&&(d=mxUtils.button(mxResources.get("copyData"),function(a){if(mxEvent.isShiftDown(a)){var d=c.getDataForCells(c.getSelectionCells());a=new EmbedDialog(b,JSON.stringify(d,null,
2),null,null,function(){console.log(d);b.alert("Written to Console (Dev Tools)")},mxResources.get("copyData"),null,"Console","data.json");b.showDialog(a.container,450,240,!0,!0);a.init()}else b.actions.get("copyData").funct(a)}),d.setAttribute("title",mxResources.get("copyData")+" ("+this.editorUi.actions.get("copyData").shortcut+") Shift+Click to Extract Data"),d.style.width="210px",d.style.marginBottom="2px",a.appendChild(d),f++,null!=b.copiedValue&&0<e.cells.length&&(e=mxUtils.button(mxResources.get("pasteData"),
@@ -3048,49 +3051,49 @@ a=parseFloat(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0)),f.value=isN
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";case mxConstants.METERS:return"m"}};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;case mxConstants.METERS:return a*mxConstants.PIXELS_PER_MM*1E3}};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;case mxConstants.METERS:return.001}};
-ArrangePanel.prototype.addGeometry=function(a){var b=this,c=this.editorUi,e=c.editor.graph,d=e.getModel(),f=c.getSelectionState(),h=this.createPanel();h.style.paddingBottom="8px";var k=document.createElement("div");k.style.position="absolute";k.style.width="50px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,mxResources.get("size"));h.appendChild(k);var g,m,l,n,p=this.addUnitInput(h,this.getUnit(),87,52,function(){g.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),
-r=this.addUnitInput(h,this.getUnit(),16,52,function(){m.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,
+ArrangePanel.prototype.addGeometry=function(a){var b=this,c=this.editorUi,e=c.editor.graph,d=e.getModel(),f=c.getSelectionState(),h=this.createPanel();h.style.paddingBottom="8px";var k=document.createElement("div");k.style.position="absolute";k.style.width="50px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,mxResources.get("size"));h.appendChild(k);var g,l,m,n,p=this.addUnitInput(h,this.getUnit(),87,52,function(){g.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),
+r=this.addUnitInput(h,this.getUnit(),16,52,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(){c.actions.get("autosize").funct()});h.appendChild(u);f.row?(p.style.visibility="hidden",p.nextSibling.style.visibility="hidden"):this.addLabel(h,mxResources.get("width"),87);this.addLabel(h,mxResources.get("height"),16);mxUtils.br(h);k=document.createElement("div");k.style.paddingTop="8px";k.style.paddingRight="20px";k.style.whiteSpace="nowrap";k.style.textAlign="right";var v=this.createCellOption(mxResources.get("constrainProportions"),
-mxConstants.STYLE_ASPECT,null,"fixed","null");v.style.width="210px";k.appendChild(v);f.cell||f.row?u.style.visibility="hidden":h.appendChild(k);var t=v.getElementsByTagName("input")[0];this.addKeyHandler(p,E);this.addKeyHandler(r,E);g=this.addGeometryHandler(p,function(a,c,d){if(e.isTableCell(d))return e.setTableColumnWidth(d,c-a.width,!0),!0;0<a.width&&(c=Math.max(1,b.fromUnit(c)),t.checked&&(a.height=Math.round(a.height*c*100/a.width)/100),a.width=c)});m=this.addGeometryHandler(r,function(a,c,d){e.isTableCell(d)&&
+mxConstants.STYLE_ASPECT,null,"fixed","null");v.style.width="210px";k.appendChild(v);f.cell||f.row?u.style.visibility="hidden":h.appendChild(k);var t=v.getElementsByTagName("input")[0];this.addKeyHandler(p,E);this.addKeyHandler(r,E);g=this.addGeometryHandler(p,function(a,c,d){if(e.isTableCell(d))return e.setTableColumnWidth(d,c-a.width,!0),!0;0<a.width&&(c=Math.max(1,b.fromUnit(c)),t.checked&&(a.height=Math.round(a.height*c*100/a.width)/100),a.width=c)});l=this.addGeometryHandler(r,function(a,c,d){e.isTableCell(d)&&
(d=e.model.getParent(d));if(e.isTableRow(d))return e.setTableRowHeight(d,c-a.height),!0;0<a.height&&(c=Math.max(1,b.fromUnit(c)),t.checked&&(a.width=Math.round(a.width*c*100/a.height)/100),a.height=c)});(f.resizable||f.row||f.cell)&&a.appendChild(h);var x=this.createPanel();x.style.paddingBottom="30px";k=document.createElement("div");k.style.position="absolute";k.style.width="70px";k.style.marginTop="0px";k.style.fontWeight="bold";mxUtils.write(k,mxResources.get("position"));x.appendChild(k);var w=
-this.addUnitInput(x,this.getUnit(),87,52,function(){l.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),y=this.addUnitInput(x,this.getUnit(),16,52,function(){n.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(x);this.addLabel(x,mxResources.get("left"),87);this.addLabel(x,mxResources.get("top"),16);var E=mxUtils.bind(this,function(a,b,d){f=c.getSelectionState();if(f.containsLabel||f.vertices.length!=e.getSelectionCount()||null==f.width||null==
+this.addUnitInput(x,this.getUnit(),87,52,function(){m.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit()),y=this.addUnitInput(x,this.getUnit(),16,52,function(){n.apply(this,arguments)},this.getUnitStep(),null,null,this.isFloatUnit());mxUtils.br(x);this.addLabel(x,mxResources.get("left"),87);this.addLabel(x,mxResources.get("top"),16);var E=mxUtils.bind(this,function(a,b,d){f=c.getSelectionState();if(f.containsLabel||f.vertices.length!=e.getSelectionCount()||null==f.width||null==
f.height)h.style.display="none";else{h.style.display="";if(d||document.activeElement!=p)p.value=this.inUnit(f.width)+(""==f.width?"":" "+this.getUnit());if(d||document.activeElement!=r)r.value=this.inUnit(f.height)+(""==f.height?"":" "+this.getUnit())}if(f.vertices.length==e.getSelectionCount()&&null!=f.x&&null!=f.y){x.style.display="";if(d||document.activeElement!=w)w.value=this.inUnit(f.x)+(""==f.x?"":" "+this.getUnit());if(d||document.activeElement!=y)y.value=this.inUnit(f.y)+(""==f.y?"":" "+this.getUnit())}else x.style.display=
-"none"});this.addKeyHandler(w,E);this.addKeyHandler(y,E);d.addListener(mxEvent.CHANGE,E);this.listeners.push({destroy:function(){d.removeListener(E)}});E();l=this.addGeometryHandler(w,function(a,c){c=b.fromUnit(c);a.relative?a.offset.x=c:a.x=c});n=this.addGeometryHandler(y,function(a,c){c=b.fromUnit(c);a.relative?a.offset.y=c:a.y=c});if(f.movable){if(0==f.edges.length&&1==f.vertices.length&&d.isEdge(d.getParent(f.vertices[0]))){var I=e.getCellGeometry(f.vertices[0]);null!=I&&I.relative&&(k=mxUtils.button(mxResources.get("center"),
+"none"});this.addKeyHandler(w,E);this.addKeyHandler(y,E);d.addListener(mxEvent.CHANGE,E);this.listeners.push({destroy:function(){d.removeListener(E)}});E();m=this.addGeometryHandler(w,function(a,c){c=b.fromUnit(c);a.relative?a.offset.x=c:a.x=c});n=this.addGeometryHandler(y,function(a,c){c=b.fromUnit(c);a.relative?a.offset.y=c:a.y=c});if(f.movable){if(0==f.edges.length&&1==f.vertices.length&&d.isEdge(d.getParent(f.vertices[0]))){var I=e.getCellGeometry(f.vertices[0]);null!=I&&I.relative&&(k=mxUtils.button(mxResources.get("center"),
mxUtils.bind(this,function(a){d.beginUpdate();try{I=I.clone(),I.x=0,I.y=0,I.offset=new mxPoint,d.setGeometry(f.vertices[0],I)}finally{d.endUpdate()}})),k.setAttribute("title",mxResources.get("center")),k.style.width="210px",k.style.position="absolute",mxUtils.br(x),mxUtils.br(x),x.appendChild(k))}a.appendChild(x)}};
-ArrangePanel.prototype.addGeometryHandler=function(a,b){function c(c){if(""!=a.value){var g=parseFloat(a.value);if(isNaN(g))a.value=f+" "+h.getUnit();else if(g!=f){d.getModel().beginUpdate();try{for(var k=e.getSelectionState().cells,l=0;l<k.length;l++)if(d.getModel().isVertex(k[l])){var n=d.getCellGeometry(k[l]);if(null!=n&&(n=n.clone(),!b(n,g,k[l]))){var p=d.view.getState(k[l]);null!=p&&d.isRecursiveVertexResize(p)&&d.resizeChildCells(k[l],n);d.getModel().setGeometry(k[l],n);d.constrainChildCells(k[l])}}}finally{d.getModel().endUpdate()}f=
+ArrangePanel.prototype.addGeometryHandler=function(a,b){function c(c){if(""!=a.value){var g=parseFloat(a.value);if(isNaN(g))a.value=f+" "+h.getUnit();else if(g!=f){d.getModel().beginUpdate();try{for(var k=e.getSelectionState().cells,m=0;m<k.length;m++)if(d.getModel().isVertex(k[m])){var n=d.getCellGeometry(k[m]);if(null!=n&&(n=n.clone(),!b(n,g,k[m]))){var p=d.view.getState(k[m]);null!=p&&d.isRecursiveVertexResize(p)&&d.resizeChildCells(k[m],n);d.getModel().setGeometry(k[m],n);d.constrainChildCells(k[m])}}}finally{d.getModel().endUpdate()}f=
g;a.value=g+" "+h.getUnit()}}mxEvent.consume(c)}var e=this.editorUi,d=e.editor.graph,f=null,h=this;mxEvent.addListener(a,"blur",c);mxEvent.addListener(a,"change",c);mxEvent.addListener(a,"focus",function(){f=a.value});return c};
-ArrangePanel.prototype.addEdgeGeometryHandler=function(a,b){function c(c){if(""!=a.value){var k=parseFloat(a.value);if(isNaN(k))a.value=f+" pt";else if(k!=f){d.getModel().beginUpdate();try{for(var g=e.getSelectionState().cells,h=0;h<g.length;h++)if(d.getModel().isEdge(g[h])){var l=d.getCellGeometry(g[h]);null!=l&&(l=l.clone(),b(l,k),d.getModel().setGeometry(g[h],l))}}finally{d.getModel().endUpdate()}f=k;a.value=k+" pt"}}mxEvent.consume(c)}var e=this.editorUi,d=e.editor.graph,f=null;mxEvent.addListener(a,
+ArrangePanel.prototype.addEdgeGeometryHandler=function(a,b){function c(c){if(""!=a.value){var k=parseFloat(a.value);if(isNaN(k))a.value=f+" pt";else if(k!=f){d.getModel().beginUpdate();try{for(var g=e.getSelectionState().cells,h=0;h<g.length;h++)if(d.getModel().isEdge(g[h])){var m=d.getCellGeometry(g[h]);null!=m&&(m=m.clone(),b(m,k),d.getModel().setGeometry(g[h],m))}}finally{d.getModel().endUpdate()}f=k;a.value=k+" pt"}}mxEvent.consume(c)}var e=this.editorUi,d=e.editor.graph,f=null;mxEvent.addListener(a,
"blur",c);mxEvent.addListener(a,"change",c);mxEvent.addListener(a,"focus",function(){f=a.value});return c};
-ArrangePanel.prototype.addEdgeGeometry=function(a){var b=this.editorUi,c=b.editor.graph,e=b.getSelectionState(),d=this.createPanel(),f=document.createElement("div");f.style.position="absolute";f.style.width="70px";f.style.marginTop="0px";f.style.fontWeight="bold";mxUtils.write(f,mxResources.get("width"));d.appendChild(f);var h,k,g,m,l,n=this.addUnitInput(d,"pt",12,44,function(){h.apply(this,arguments)});mxUtils.br(d);this.addKeyHandler(n,w);h=mxUtils.bind(this,function(a){var d=parseInt(n.value),
+ArrangePanel.prototype.addEdgeGeometry=function(a){var b=this.editorUi,c=b.editor.graph,e=b.getSelectionState(),d=this.createPanel(),f=document.createElement("div");f.style.position="absolute";f.style.width="70px";f.style.marginTop="0px";f.style.fontWeight="bold";mxUtils.write(f,mxResources.get("width"));d.appendChild(f);var h,k,g,l,m,n=this.addUnitInput(d,"pt",12,44,function(){h.apply(this,arguments)});mxUtils.br(d);this.addKeyHandler(n,w);h=mxUtils.bind(this,function(a){var d=parseInt(n.value),
d=Math.min(999,Math.max(1,isNaN(d)?1:d));if(d!=mxUtils.getValue(e.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth)){var f=b.getSelectionState().cells;c.setCellStyles("width",d,f);b.fireEvent(new mxEventObject("styleChanged","keys",["width"],"values",[d],"cells",f))}n.value=d+" pt";mxEvent.consume(a)});mxEvent.addListener(n,"blur",h);mxEvent.addListener(n,"change",h);a.appendChild(d);var p=this.createPanel();p.style.paddingBottom="30px";f=document.createElement("div");f.style.position=
-"absolute";f.style.width="70px";f.style.marginTop="0px";mxUtils.write(f,mxResources.get("linestart"));p.appendChild(f);var r=this.addUnitInput(p,"pt",87,52,function(){m.apply(this,arguments)}),u=this.addUnitInput(p,"pt",16,52,function(){l.apply(this,arguments)});mxUtils.br(p);this.addLabel(p,mxResources.get("left"),87);this.addLabel(p,mxResources.get("top"),16);a.appendChild(p);this.addKeyHandler(r,w);this.addKeyHandler(u,w);var v=this.createPanel();v.style.paddingBottom="30px";f=document.createElement("div");
+"absolute";f.style.width="70px";f.style.marginTop="0px";mxUtils.write(f,mxResources.get("linestart"));p.appendChild(f);var r=this.addUnitInput(p,"pt",87,52,function(){l.apply(this,arguments)}),u=this.addUnitInput(p,"pt",16,52,function(){m.apply(this,arguments)});mxUtils.br(p);this.addLabel(p,mxResources.get("left"),87);this.addLabel(p,mxResources.get("top"),16);a.appendChild(p);this.addKeyHandler(r,w);this.addKeyHandler(u,w);var v=this.createPanel();v.style.paddingBottom="30px";f=document.createElement("div");
f.style.position="absolute";f.style.width="70px";f.style.marginTop="0px";mxUtils.write(f,mxResources.get("lineend"));v.appendChild(f);var t=this.addUnitInput(v,"pt",87,52,function(){k.apply(this,arguments)}),x=this.addUnitInput(v,"pt",16,52,function(){g.apply(this,arguments)});mxUtils.br(v);this.addLabel(v,mxResources.get("left"),87);this.addLabel(v,mxResources.get("top"),16);a.appendChild(v);this.addKeyHandler(t,w);this.addKeyHandler(x,w);var w=mxUtils.bind(this,function(a,f,g){e=b.getSelectionState();
a=e.cells[0];if("link"==e.style.shape||"flexArrow"==e.style.shape){if(d.style.display="",g||document.activeElement!=n)g=mxUtils.getValue(e.style,"width",mxCellRenderer.defaultShapes.flexArrow.prototype.defaultWidth),n.value=g+" pt"}else d.style.display="none";1==e.cells.length&&c.model.isEdge(a)?(g=c.model.getGeometry(a),null!=g.sourcePoint&&null==c.model.getTerminal(a,!0)?(r.value=g.sourcePoint.x,u.value=g.sourcePoint.y):p.style.display="none",null!=g.targetPoint&&null==c.model.getTerminal(a,!1)?
-(t.value=g.targetPoint.x,x.value=g.targetPoint.y):v.style.display="none"):(p.style.display="none",v.style.display="none")});m=this.addEdgeGeometryHandler(r,function(a,b){a.sourcePoint.x=b});l=this.addEdgeGeometryHandler(u,function(a,b){a.sourcePoint.y=b});k=this.addEdgeGeometryHandler(t,function(a,b){a.targetPoint.x=b});g=this.addEdgeGeometryHandler(x,function(a,b){a.targetPoint.y=b});c.getModel().addListener(mxEvent.CHANGE,w);this.listeners.push({destroy:function(){c.getModel().removeListener(w)}});
+(t.value=g.targetPoint.x,x.value=g.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});k=this.addEdgeGeometryHandler(t,function(a,b){a.targetPoint.x=b});g=this.addEdgeGeometryHandler(x,function(a,b){a.targetPoint.y=b});c.getModel().addListener(mxEvent.CHANGE,w);this.listeners.push({destroy:function(){c.getModel().removeListener(w)}});
w()};TextFormatPanel=function(a,b,c){BaseFormatPanel.call(this,a,b,c);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 b(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 c=this.editorUi,e=c.editor.graph,d=c.getSelectionState(),f=this.createTitle(mxResources.get("font"));f.style.paddingLeft="14px";f.style.paddingTop="10px";f.style.paddingBottom="6px";a.appendChild(f);f=this.createPanel();f.style.paddingTop="2px";f.style.paddingBottom="2px";f.style.position=
"relative";f.style.marginLeft="-2px";f.style.borderWidth="0px";f.className="geToolbarContainer";if(e.cellEditor.isContentEditing()){var h=f.cloneNode(),k=this.editorUi.toolbar.addMenu(mxResources.get("style"),mxResources.get("style"),!0,"formatBlock",h,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="200px";k.style.height="15px";k=k.getElementsByTagName("div")[0];k.style.cssFloat="right";a.appendChild(h)}a.appendChild(f);
-h=this.createPanel();h.style.marginTop="8px";h.style.borderTop="1px solid #c0c0c0";h.style.paddingTop="6px";h.style.paddingBottom="6px";var g=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",f,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="200px";g.style.height="15px";k=f.cloneNode(!1);k.style.marginLeft="-3px";var m=this.editorUi.toolbar.addItems(["bold",
-"italic","underline"],k,!0);m[0].setAttribute("title",mxResources.get("bold")+" ("+this.editorUi.actions.get("bold").shortcut+")");m[1].setAttribute("title",mxResources.get("italic")+" ("+this.editorUi.actions.get("italic").shortcut+")");m[2].setAttribute("title",mxResources.get("underline")+" ("+this.editorUi.actions.get("underline").shortcut+")");var l=this.editorUi.toolbar.addItems(["vertical"],k,!0)[0];a.appendChild(k);this.styleButtons(m);this.styleButtons([l]);var n=f.cloneNode(!1);n.style.marginLeft=
+h=this.createPanel();h.style.marginTop="8px";h.style.borderTop="1px solid #c0c0c0";h.style.paddingTop="6px";h.style.paddingBottom="6px";var g=this.editorUi.toolbar.addMenu("Helvetica",mxResources.get("fontFamily"),!0,"fontFamily",f,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="200px";g.style.height="15px";k=f.cloneNode(!1);k.style.marginLeft="-3px";var l=this.editorUi.toolbar.addItems(["bold",
+"italic","underline"],k,!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"],k,!0)[0];a.appendChild(k);this.styleButtons(l);this.styleButtons([m]);var n=f.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"),e.cellEditor.isContentEditing()?function(a){e.cellEditor.alignText(mxConstants.ALIGN_LEFT,a);c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ALIGN],"values",[mxConstants.ALIGN_LEFT],"cells",d.cells))}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT])),n),u=this.editorUi.toolbar.addButton("geSprite-center",
mxResources.get("center"),e.cellEditor.isContentEditing()?function(a){e.cellEditor.alignText(mxConstants.ALIGN_CENTER,a);c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ALIGN],"values",[mxConstants.ALIGN_CENTER],"cells",d.cells))}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER])),n),v=this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),e.cellEditor.isContentEditing()?function(a){e.cellEditor.alignText(mxConstants.ALIGN_RIGHT,
a);c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_ALIGN],"values",[mxConstants.ALIGN_RIGHT],"cells",d.cells))}:p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT])),n);this.styleButtons([r,u,v]);if(e.cellEditor.isContentEditing()){var t=this.editorUi.toolbar.addButton("geSprite-removeformat",mxResources.get("strikethrough"),function(){document.execCommand("strikeThrough",!1,null)},k);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 x=this.editorUi.toolbar.addButton("geSprite-top",mxResources.get("top"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP])),n),w=this.editorUi.toolbar.addButton("geSprite-middle",mxResources.get("middle"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE])),n),y=this.editorUi.toolbar.addButton("geSprite-bottom",
-mxResources.get("bottom"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),n);this.styleButtons([x,w,y]);a.appendChild(n);var E,I,B,G,z,F,K;e.cellEditor.isContentEditing()?(x.style.display="none",w.style.display="none",y.style.display="none",l.style.display="none",B=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==B.style.opacity&&document.execCommand("justifyfull",!1,null)},n),B.style.marginRight=
+mxResources.get("bottom"),p(this.editorUi.menus.createStyleChangeFunction([mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM])),n);this.styleButtons([x,w,y]);a.appendChild(n);var E,I,B,G,z,F,K;e.cellEditor.isContentEditing()?(x.style.display="none",w.style.display="none",y.style.display="none",m.style.display="none",B=this.editorUi.toolbar.addButton("geSprite-justifyfull",mxResources.get("block"),function(){1==B.style.opacity&&document.execCommand("justifyfull",!1,null)},n),B.style.marginRight=
"9px",B.style.opacity=1,this.styleButtons([B,E=this.editorUi.toolbar.addButton("geSprite-subscript",mxResources.get("subscript")+" ("+Editor.ctrlKey+"+,)",function(){document.execCommand("subscript",!1,null)},n),I=this.editorUi.toolbar.addButton("geSprite-superscript",mxResources.get("superscript")+" ("+Editor.ctrlKey+"+.)",function(){document.execCommand("superscript",!1,null)},n)]),E.style.marginLeft="10px",p=n.cloneNode(!1),p.style.paddingTop="4px",n=[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(){e.cellEditor.toggleViewMode()},p)],this.styleButtons(n),n[n.length-2].style.marginLeft="10px",a.appendChild(p)):(m[2].style.marginRight="12px",v.style.marginRight="12px");n=f.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 L=document.createElement("select");L.style.position="absolute";L.style.left="126px";L.style.width="98px";L.style.border="1px solid rgb(160, 160, 160)";L.style.borderRadius="4px";L.style.marginTop="-2px";for(var t="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),N={topLeft:[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_TOP,mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_BOTTOM],top:[mxConstants.ALIGN_CENTER,
+!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(){e.cellEditor.toggleViewMode()},p)],this.styleButtons(n),n[n.length-2].style.marginLeft="10px",a.appendChild(p)):(l[2].style.marginRight="12px",v.style.marginRight="12px");n=f.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 L=document.createElement("select");L.style.position="absolute";L.style.left="126px";L.style.width="98px";L.style.border="1px solid rgb(160, 160, 160)";L.style.borderRadius="4px";L.style.marginTop="-2px";for(var t="topLeft top topRight left center right bottomLeft bottom bottomRight".split(" "),O={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 J=document.createElement("option");J.setAttribute("value",t[p]);mxUtils.write(J,mxResources.get(t[p]));L.appendChild(J)}n.appendChild(L);t=f.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 R=document.createElement("select");R.style.position="absolute";R.style.border="1px solid rgb(160, 160, 160)";R.style.left="126px";R.style.width="98px";R.style.borderRadius="4px";R.style.marginTop="-2px";for(var J=["automatic","leftToRight","rightToLeft"],Y={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},p=0;p<J.length;p++){var ca=
-document.createElement("option");ca.setAttribute("value",J[p]);mxUtils.write(ca,mxResources.get(J[p]));R.appendChild(ca)}t.appendChild(R);e.isEditing()||(a.appendChild(n),mxEvent.addListener(L,"change",function(a){e.getModel().beginUpdate();try{var b=N[L.value];null!=b&&(e.setCellStyles(mxConstants.STYLE_LABEL_POSITION,b[0],d.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,b[1],d.cells),e.setCellStyles(mxConstants.STYLE_ALIGN,b[2],d.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,
-b[3],d.cells))}finally{e.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(t),mxEvent.addListener(R,"change",function(a){e.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,Y[R.value],d.cells);mxEvent.consume(a)}));var O=document.createElement("input");O.style.position="absolute";O.style.border="1px solid rgb(160, 160, 160)";O.style.textAlign="right";O.style.marginTop="4px";O.style.left="161px";O.style.width="53px";O.style.borderRadius="4px";O.style.height="23px";O.style.boxSizing="border-box";
-k.appendChild(O);var S=null,n=this.installInputHandler(O,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11){var b=function(b,g){null!=e.cellEditor.textarea&&b!=e.cellEditor.textarea&&e.cellEditor.textarea.contains(b)&&(g||f.containsNode(b,!0))&&("FONT"==b.nodeName?(b.removeAttribute("size"),b.style.fontSize=a+"px"):mxUtils.getCurrentStyle(b).fontSize!=a+"px"&&(mxUtils.getCurrentStyle(b.parentNode).fontSize!=
+"4px";t.style.paddingBottom="4px";t.style.fontWeight="normal";mxUtils.write(t,mxResources.get("writingDirection"));var R=document.createElement("select");R.style.position="absolute";R.style.border="1px solid rgb(160, 160, 160)";R.style.left="126px";R.style.width="98px";R.style.borderRadius="4px";R.style.marginTop="-2px";for(var J=["automatic","leftToRight","rightToLeft"],Z={automatic:null,leftToRight:mxConstants.TEXT_DIRECTION_LTR,rightToLeft:mxConstants.TEXT_DIRECTION_RTL},p=0;p<J.length;p++){var ca=
+document.createElement("option");ca.setAttribute("value",J[p]);mxUtils.write(ca,mxResources.get(J[p]));R.appendChild(ca)}t.appendChild(R);e.isEditing()||(a.appendChild(n),mxEvent.addListener(L,"change",function(a){e.getModel().beginUpdate();try{var b=O[L.value];null!=b&&(e.setCellStyles(mxConstants.STYLE_LABEL_POSITION,b[0],d.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_LABEL_POSITION,b[1],d.cells),e.setCellStyles(mxConstants.STYLE_ALIGN,b[2],d.cells),e.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,
+b[3],d.cells))}finally{e.getModel().endUpdate()}mxEvent.consume(a)}),a.appendChild(t),mxEvent.addListener(R,"change",function(a){e.setCellStyles(mxConstants.STYLE_TEXT_DIRECTION,Z[R.value],d.cells);mxEvent.consume(a)}));var P=document.createElement("input");P.style.position="absolute";P.style.border="1px solid rgb(160, 160, 160)";P.style.textAlign="right";P.style.marginTop="4px";P.style.left="161px";P.style.width="53px";P.style.borderRadius="4px";P.style.height="23px";P.style.boxSizing="border-box";
+k.appendChild(P);var S=null,n=this.installInputHandler(P,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize,1,999," pt",function(a){if(window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11){var b=function(b,g){null!=e.cellEditor.textarea&&b!=e.cellEditor.textarea&&e.cellEditor.textarea.contains(b)&&(g||f.containsNode(b,!0))&&("FONT"==b.nodeName?(b.removeAttribute("size"),b.style.fontSize=a+"px"):mxUtils.getCurrentStyle(b).fontSize!=a+"px"&&(mxUtils.getCurrentStyle(b.parentNode).fontSize!=
a+"px"?b.style.fontSize=a+"px":b.style.fontSize=""));c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTSIZE],"values",[a],"cells",d.cells))},f=window.getSelection(),g=0<f.rangeCount?f.getRangeAt(0).commonAncestorContainer:e.cellEditor.textarea;g!=e.cellEditor.textarea&&g.nodeType==mxConstants.NODETYPE_ELEMENT||document.execCommand("fontSize",!1,"1");g!=e.cellEditor.textarea&&(g=g.parentNode);if(null!=g&&g.nodeType==mxConstants.NODETYPE_ELEMENT){var k=g.getElementsByTagName("*");
-b(g);for(g=0;g<k.length;g++)b(k[g])}O.value=a+" pt"}else if(window.getSelection||document.selection)if(b=function(a,b){for(;null!=b;){if(b===a)return!0;b=b.parentNode}return!1},k=null,document.selection?k=document.selection.createRange().parentElement():(f=window.getSelection(),0<f.rangeCount&&(k=f.getRangeAt(0).commonAncestorContainer)),null!=k&&b(e.cellEditor.textarea,k))for(S=a,document.execCommand("fontSize",!1,"4"),k=e.cellEditor.textarea.getElementsByTagName("font"),g=0;g<k.length;g++)if("4"==
-k[g].getAttribute("size")){k[g].removeAttribute("size");k[g].style.fontSize=S+"px";window.setTimeout(function(){O.value=S+" pt";S=null},0);break}},!0),n=this.createStepper(O,n,1,10,!0,Menus.prototype.defaultFontSize);n.style.display=O.style.display;n.style.marginTop="4px";n.style.left="214px";k.appendChild(n);k=g.getElementsByTagName("div")[0];k.style.cssFloat="right";var U=null,Q=e.shapeBackgroundColor,X=null,ka=e.shapeForegroundColor,ma=e.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),
+b(g);for(g=0;g<k.length;g++)b(k[g])}P.value=a+" pt"}else if(window.getSelection||document.selection)if(b=function(a,b){for(;null!=b;){if(b===a)return!0;b=b.parentNode}return!1},k=null,document.selection?k=document.selection.createRange().parentElement():(f=window.getSelection(),0<f.rangeCount&&(k=f.getRangeAt(0).commonAncestorContainer)),null!=k&&b(e.cellEditor.textarea,k))for(S=a,document.execCommand("fontSize",!1,"4"),k=e.cellEditor.textarea.getElementsByTagName("font"),g=0;g<k.length;g++)if("4"==
+k[g].getAttribute("size")){k[g].removeAttribute("size");k[g].style.fontSize=S+"px";window.setTimeout(function(){P.value=S+" pt";S=null},0);break}},!0),n=this.createStepper(P,n,1,10,!0,Menus.prototype.defaultFontSize);n.style.display=P.style.display;n.style.marginTop="4px";n.style.left="214px";k.appendChild(n);k=g.getElementsByTagName("div")[0];k.style.cssFloat="right";var U=null,Q=e.shapeBackgroundColor,X=null,ka=e.shapeForegroundColor,ma=e.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("backgroundColor"),
function(){return Q},function(a){document.execCommand("backcolor",!1,a!=mxConstants.NONE?a:"transparent");c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],"values",[a],"cells",d.cells))},e.shapeBackgroundColor,{install:function(a){U=a},destroy:function(){U=null}},null,!0):this.createCellColorOption(mxResources.get("backgroundColor"),mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,"default",null,function(a){e.updateLabelElements(d.cells,function(a){a.style.backgroundColor=
null})},e.shapeBackgroundColor);ma.style.fontWeight="bold";var oa=this.createCellColorOption(mxResources.get("borderColor"),mxConstants.STYLE_LABEL_BORDERCOLOR,"default",null,null,e.shapeForegroundColor);oa.style.fontWeight="bold";k=1<=d.vertices.length?e.stylesheet.getDefaultVertexStyle():e.stylesheet.getDefaultEdgeStyle();k=e.cellEditor.isContentEditing()?this.createColorOption(mxResources.get("fontColor"),function(){return ka},function(a){if(mxClient.IS_FF){for(var b=e.cellEditor.textarea.getElementsByTagName("font"),
f=[],g=0;g<b.length;g++)f.push({node:b[g],color:b[g].getAttribute("color")});document.execCommand("forecolor",!1,a!=mxConstants.NONE?a:"transparent");c.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[a],"cells",d.cells));a=e.cellEditor.textarea.getElementsByTagName("font");for(g=0;g<a.length;g++)if(g>=f.length||a[g]!=f[g].node||a[g]==f[g].node&&a[g].getAttribute("color")!=f[g].color){f=a[g].firstChild;if(null!=f&&"A"==f.nodeName&&null==f.nextSibling&&null!=
@@ -3110,47 +3113,46 @@ function(a){if(null!=z){var b=z.style.borderColor.replace(/\brgb\s*\(\s*(\d+)\s*
""):(c.setAttribute("border","1"),c.style.border="1px solid "+b,c.style.borderCollapse="collapse")})}}),f),this.editorUi.toolbar.addButton("geSprite-fillcolor",mxResources.get("backgroundColor"),mxUtils.bind(this,function(a){if(null!=z){var b=z.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(b,
function(b){var c=null==F||null!=a&&mxEvent.isShiftDown(a)?z:F;e.processElements(c,function(a){a.style.backgroundColor=null});c.style.backgroundColor=null==b||b==mxConstants.NONE?"":b})}}),f),this.editorUi.toolbar.addButton("geSprite-fit",mxResources.get("spacing"),function(){if(null!=z){var a=z.getAttribute("cellPadding")||0,a=new FilenameDialog(c,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?z.setAttribute("cellPadding",a):z.removeAttribute("cellPadding")}),mxResources.get("spacing"));
c.showDialog(a.container,300,80,!0,!0);a.init()}},f),this.editorUi.toolbar.addButton("geSprite-left",mxResources.get("left"),function(){null!=z&&z.setAttribute("align","left")},f),this.editorUi.toolbar.addButton("geSprite-center",mxResources.get("center"),function(){null!=z&&z.setAttribute("align","center")},f),this.editorUi.toolbar.addButton("geSprite-right",mxResources.get("right"),function(){null!=z&&z.setAttribute("align","right")},f)];this.styleButtons(n);n[2].style.marginRight="10px";h.appendChild(f);
-a.appendChild(h);G=h}else a.appendChild(h),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(k);var Z=mxUtils.bind(this,function(a,e,f){d=c.getSelectionState();a=mxUtils.getValue(d.style,mxConstants.STYLE_FONTSTYLE,0);b(m[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(m[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);b(m[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);g.firstChild.nodeValue=mxUtils.getValue(d.style,
-mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(l,"0"==mxUtils.getValue(d.style,mxConstants.STYLE_HORIZONTAL,"1"));if(f||document.activeElement!=O)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),O.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(d.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);b(r,a==mxConstants.ALIGN_LEFT);b(u,a==mxConstants.ALIGN_CENTER);b(v,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(d.style,mxConstants.STYLE_VERTICAL_ALIGN,
+a.appendChild(h);G=h}else a.appendChild(h),a.appendChild(this.createRelativeOption(mxResources.get("opacity"),mxConstants.STYLE_TEXT_OPACITY)),a.appendChild(k);var Y=mxUtils.bind(this,function(a,e,f){d=c.getSelectionState();a=mxUtils.getValue(d.style,mxConstants.STYLE_FONTSTYLE,0);b(l[0],(a&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);b(l[1],(a&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);b(l[2],(a&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);g.firstChild.nodeValue=mxUtils.getValue(d.style,
+mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);b(m,"0"==mxUtils.getValue(d.style,mxConstants.STYLE_HORIZONTAL,"1"));if(f||document.activeElement!=P)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)),P.value=isNaN(a)?"":a+" pt";a=mxUtils.getValue(d.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);b(r,a==mxConstants.ALIGN_LEFT);b(u,a==mxConstants.ALIGN_CENTER);b(v,a==mxConstants.ALIGN_RIGHT);a=mxUtils.getValue(d.style,mxConstants.STYLE_VERTICAL_ALIGN,
mxConstants.ALIGN_MIDDLE);b(x,a==mxConstants.ALIGN_TOP);b(w,a==mxConstants.ALIGN_MIDDLE);b(y,a==mxConstants.ALIGN_BOTTOM);a=mxUtils.getValue(d.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);e=mxUtils.getValue(d.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);L.value=a==mxConstants.ALIGN_LEFT&&e==mxConstants.ALIGN_TOP?"topLeft":a==mxConstants.ALIGN_CENTER&&e==mxConstants.ALIGN_TOP?"top":a==mxConstants.ALIGN_RIGHT&&e==mxConstants.ALIGN_TOP?"topRight":a==mxConstants.ALIGN_LEFT&&
e==mxConstants.ALIGN_BOTTOM?"bottomLeft":a==mxConstants.ALIGN_CENTER&&e==mxConstants.ALIGN_BOTTOM?"bottom":a==mxConstants.ALIGN_RIGHT&&e==mxConstants.ALIGN_BOTTOM?"bottomRight":a==mxConstants.ALIGN_LEFT?"left":a==mxConstants.ALIGN_RIGHT?"right":"center";a=mxUtils.getValue(d.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);a==mxConstants.TEXT_DIRECTION_RTL?R.value="rightToLeft":a==mxConstants.TEXT_DIRECTION_LTR?R.value="leftToRight":a==mxConstants.TEXT_DIRECTION_AUTO&&(R.value=
"automatic");if(f||document.activeElement!=la)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING,2)),la.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=ra)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_TOP,0)),ra.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=ea)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_RIGHT,0)),ea.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=ja)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_BOTTOM,
0)),ja.value=isNaN(a)?"":a+" pt";if(f||document.activeElement!=ia)a=parseFloat(mxUtils.getValue(d.style,mxConstants.STYLE_SPACING_LEFT,0)),ia.value=isNaN(a)?"":a+" pt"});ga=this.installInputHandler(la,mxConstants.STYLE_SPACING,2,-999,999," pt");pa=this.installInputHandler(ra,mxConstants.STYLE_SPACING_TOP,0,-999,999," pt");qa=this.installInputHandler(ea,mxConstants.STYLE_SPACING_RIGHT,0,-999,999," pt");ua=this.installInputHandler(ja,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999," pt");na=this.installInputHandler(ia,
-mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(O,Z);this.addKeyHandler(la,Z);this.addKeyHandler(ra,Z);this.addKeyHandler(ea,Z);this.addKeyHandler(ja,Z);this.addKeyHandler(ia,Z);e.getModel().addListener(mxEvent.CHANGE,Z);this.listeners.push({destroy:function(){e.getModel().removeListener(Z)}});Z();if(e.cellEditor.isContentEditing()){var aa=!1,f=function(){aa||(aa=!0,window.setTimeout(function(){var a=e.getSelectedEditingElement();if(null!=a){var c=function(a,b){if(null!=a&&null!=
+mxConstants.STYLE_SPACING_LEFT,0,-999,999," pt");this.addKeyHandler(P,Y);this.addKeyHandler(la,Y);this.addKeyHandler(ra,Y);this.addKeyHandler(ea,Y);this.addKeyHandler(ja,Y);this.addKeyHandler(ia,Y);e.getModel().addListener(mxEvent.CHANGE,Y);this.listeners.push({destroy:function(){e.getModel().removeListener(Y)}});Y();if(e.cellEditor.isContentEditing()){var aa=!1,f=function(){aa||(aa=!0,window.setTimeout(function(){var a=e.getSelectedEditingElement();if(null!=a){var c=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},f=function(b){if(null!=e.getParentByName(a,b,e.cellEditor.textarea))return!0;for(var c=a;null!=c&&1==c.childNodes.length;)if(c=c.childNodes[0],c.nodeName==b)return!0;return!1},k=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)):""},l=mxUtils.getCurrentStyle(a),n=k(l),p=h(n,l,a),t=a.getElementsByTagName("*");if(0<t.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var x=window.getSelection(),w=0;w<t.length;w++)if(x.containsNode(t[w],!0)){temp=mxUtils.getCurrentStyle(t[w]);var n=Math.max(k(temp),n),y=h(n,temp,t[w]);if(y!=p||isNaN(y))p=""}null!=l&&(b(m[0],
-"bold"==l.fontWeight||400<l.fontWeight||f("B")||f("STRONG")),b(m[1],"italic"==l.fontStyle||f("I")||f("EM")),b(m[2],f("U")),b(I,f("SUP")),b(E,f("SUB")),e.cellEditor.isTableSelected()?(b(B,c(l.textAlign,"justify")),b(r,c(l.textAlign,"left")),b(u,c(l.textAlign,"center")),b(v,c(l.textAlign,"right"))):(f=e.cellEditor.align||mxUtils.getValue(d.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),c(l.textAlign,"justify")?(b(B,c(l.textAlign,"justify")),b(r,!1),b(u,!1),b(v,!1)):(b(B,!1),b(r,f==mxConstants.ALIGN_LEFT),
-b(u,f==mxConstants.ALIGN_CENTER),b(v,f==mxConstants.ALIGN_RIGHT))),z=e.getParentByName(a,"TABLE",e.cellEditor.textarea),K=null==z?null:e.getParentByName(a,"TR",z),F=null==z?null:e.getParentByNames(a,["TD","TH"],z),G.style.display=null!=z?"":"none",document.activeElement!=O&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=S?(a.removeAttribute("size"),a.style.fontSize=S+" pt",S=null):O.value=isNaN(n)?"":n+" pt",y=parseFloat(p),isNaN(y)?sa.value="100 %":sa.value=Math.round(100*y)+" %"),null!=
-X&&(ka="rgba(0, 0, 0, 0)"==l.color||"transparent"==l.color?mxConstants.NONE:mxUtils.rgba2hex(l.color),X(ka,!0)),null!=U&&(Q="rgba(0, 0, 0, 0)"==l.backgroundColor||"transparent"==l.backgroundColor?mxConstants.NONE:mxUtils.rgba2hex(l.backgroundColor),U(Q,!0)),null!=g.firstChild&&(g.firstChild.nodeValue=Graph.stripQuotes(l.fontFamily)))}aa=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(e.cellEditor.textarea,"DOMSubtreeModified",f);mxEvent.addListener(e.cellEditor.textarea,
+"%"==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=k(m),p=h(n,m,a),t=a.getElementsByTagName("*");if(0<t.length&&window.getSelection&&!mxClient.IS_IE&&!mxClient.IS_IE11)for(var x=window.getSelection(),w=0;w<t.length;w++)if(x.containsNode(t[w],!0)){temp=mxUtils.getCurrentStyle(t[w]);var n=Math.max(k(temp),n),y=h(n,temp,t[w]);if(y!=p||isNaN(y))p=""}null!=m&&(b(l[0],
+"bold"==m.fontWeight||400<m.fontWeight||f("B")||f("STRONG")),b(l[1],"italic"==m.fontStyle||f("I")||f("EM")),b(l[2],f("U")),b(I,f("SUP")),b(E,f("SUB")),e.cellEditor.isTableSelected()?(b(B,c(m.textAlign,"justify")),b(r,c(m.textAlign,"left")),b(u,c(m.textAlign,"center")),b(v,c(m.textAlign,"right"))):(f=e.cellEditor.align||mxUtils.getValue(d.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),c(m.textAlign,"justify")?(b(B,c(m.textAlign,"justify")),b(r,!1),b(u,!1),b(v,!1)):(b(B,!1),b(r,f==mxConstants.ALIGN_LEFT),
+b(u,f==mxConstants.ALIGN_CENTER),b(v,f==mxConstants.ALIGN_RIGHT))),z=e.getParentByName(a,"TABLE",e.cellEditor.textarea),K=null==z?null:e.getParentByName(a,"TR",z),F=null==z?null:e.getParentByNames(a,["TD","TH"],z),G.style.display=null!=z?"":"none",document.activeElement!=P&&("FONT"==a.nodeName&&"4"==a.getAttribute("size")&&null!=S?(a.removeAttribute("size"),a.style.fontSize=S+" pt",S=null):P.value=isNaN(n)?"":n+" pt",y=parseFloat(p),isNaN(y)?sa.value="100 %":sa.value=Math.round(100*y)+" %"),null!=
+X&&(ka="rgba(0, 0, 0, 0)"==m.color||"transparent"==m.color?mxConstants.NONE:mxUtils.rgba2hex(m.color),X(ka,!0)),null!=U&&(Q="rgba(0, 0, 0, 0)"==m.backgroundColor||"transparent"==m.backgroundColor?mxConstants.NONE:mxUtils.rgba2hex(m.backgroundColor),U(Q,!0)),null!=g.firstChild&&(g.firstChild.nodeValue=Graph.stripQuotes(m.fontFamily)))}aa=!1},0))};(mxClient.IS_FF||mxClient.IS_EDGE||mxClient.IS_IE||mxClient.IS_IE11)&&mxEvent.addListener(e.cellEditor.textarea,"DOMSubtreeModified",f);mxEvent.addListener(e.cellEditor.textarea,
"input",f);mxEvent.addListener(e.cellEditor.textarea,"touchend",f);mxEvent.addListener(e.cellEditor.textarea,"mouseup",f);mxEvent.addListener(e.cellEditor.textarea,"keyup",f);this.listeners.push({destroy:function(){}});f()}return a};StyleFormatPanel=function(a,b,c){BaseFormatPanel.call(this,a,b,c);this.init()};mxUtils.extend(StyleFormatPanel,BaseFormatPanel);StyleFormatPanel.prototype.defaultStrokeColor="black";
StyleFormatPanel.prototype.init=function(){var a=this.editorUi.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),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 b=document.implementation.createHTMLDocument(""),c=document.createElement("style");mxUtils.setTextContent(c,a);b.body.appendChild(c);return c.sheet.cssRules};
StyleFormatPanel.prototype.addSvgStyles=function(a){var b=this.editorUi.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="6px";a.style.fontWeight="bold";a.style.display="none";try{var c=b.style.editableCssRules;if(null!=c){var e=new RegExp(c),d=b.style.image.substring(b.style.image.indexOf(",")+1),f=window.atob?atob(d):Base64.decode(d,!0),h=mxUtils.parseXml(f);if(null!=h)for(var k=h.getElementsByTagName("style"),b=0;b<k.length;b++)for(var g=this.getCssRules(mxUtils.getTextContent(k[b])),
-c=0;c<g.length;c++)this.addSvgRule(a,g[c],h,k[b],g,c,e)}}catch(m){}return a};
-StyleFormatPanel.prototype.addSvgRule=function(a,b,c,e,d,f,h){var k=this.editorUi,g=k.editor.graph;h.test(b.selectorText)&&(h=mxUtils.bind(this,function(b,h,n){var m=mxUtils.trim(b.style[h]);""!=m&&"url("!=m.substring(0,4)&&(b=this.createColorOption(n+" "+b.selectorText,function(){var a=m;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],
+c=0;c<g.length;c++)this.addSvgRule(a,g[c],h,k[b],g,c,e)}}catch(l){}return a};
+StyleFormatPanel.prototype.addSvgRule=function(a,b,c,e,d,f,h){var k=this.editorUi,g=k.editor.graph;h.test(b.selectorText)&&(h=mxUtils.bind(this,function(b,h,n){var l=mxUtils.trim(b.style[h]);""!=l&&"url("!=l.substring(0,4)&&(b=this.createColorOption(n+" "+b.selectorText,function(){var a=l;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){d[f].style[h]=a;a="";for(var b=0;b<d.length;b++)a+=d[b].cssText+" ";e.textContent=a;a=mxUtils.getXml(c.documentElement);g.setCellStyles(mxConstants.STYLE_IMAGE,"data:image/svg+xml,"+(window.btoa?btoa(a):Base64.encode(a,!0)),k.getSelectionState().cells)}),"#ffffff",{install:function(a){},destroy:function(){}}),a.appendChild(b),a.style.display="")}),h(b,"fill",mxResources.get("fill")),h(b,"stroke",mxResources.get("line")),h(b,"stop-color",
mxResources.get("gradient")))};
StyleFormatPanel.prototype.addEditOps=function(a){var b=this.editorUi.getSelectionState(),c=null;1==b.cells.length&&(c=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,function(a){this.editorUi.actions.get("editStyle").funct()})),c.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),c.style.width="210px",c.style.marginBottom="2px",a.appendChild(c));b.image&&0<b.cells.length&&(b=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,
function(a){this.editorUi.actions.get("image").funct()})),b.setAttribute("title",mxResources.get("editImage")),b.style.marginBottom="2px",null==c?b.style.width="210px":(c.style.width="104px",b.style.width="104px",b.style.marginLeft="2px"),a.appendChild(b));return a};
StyleFormatPanel.prototype.addFill=function(a){var b=this.editorUi,c=b.editor.graph,e=b.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="6px";var d=document.createElement("select");d.style.position="absolute";d.style.left="104px";d.style.width="70px";d.style.height="22px";d.style.padding="0px";d.style.marginTop="-3px";d.style.borderRadius="4px";d.style.border="1px solid rgb(160, 160, 160)";d.style.boxSizing="border-box";var f=d.cloneNode(!1);mxEvent.addListener(d,"click",function(a){mxEvent.consume(a)});
mxEvent.addListener(f,"click",function(a){mxEvent.consume(a)});var h=1<=e.vertices.length?c.stylesheet.getDefaultVertexStyle():c.stylesheet.getDefaultEdgeStyle(),k=this.createCellColorOption(mxResources.get("gradient"),mxConstants.STYLE_GRADIENTCOLOR,null!=h[mxConstants.STYLE_GRADIENTCOLOR]?h[mxConstants.STYLE_GRADIENTCOLOR]:"#ffffff",function(a){d.style.display=null==a||a==mxConstants.NONE?"none":""},function(a){c.updateCellStyles({gradientColor:a},c.getSelectionCells())}),g="image"==e.style.shape?
-mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR,h="image"==e.style.shape?mxResources.get("background"):mxResources.get("fill"),h=this.createCellColorOption(h,g,"default",null,mxUtils.bind(this,function(a){c.setCellStyles(g,a,e.cells)}),c.shapeBackgroundColor);h.style.fontWeight="bold";var m=mxUtils.getValue(e.style,g,null);k.style.display=null!=m&&m!=mxConstants.NONE&&e.fill&&"image"!=e.style.shape?"":"none";for(var l=[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,
-mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_RADIAL],m=0;m<l.length;m++){var n=document.createElement("option");n.setAttribute("value",l[m]);mxUtils.write(n,mxResources.get(l[m]));d.appendChild(n)}k.appendChild(d);for(m=0;m<Editor.roughFillStyles.length;m++)l=document.createElement("option"),l.setAttribute("value",Editor.roughFillStyles[m].val),mxUtils.write(l,Editor.roughFillStyles[m].dispName),f.appendChild(l);h.appendChild(f);var p=mxUtils.bind(this,function(){e=b.getSelectionState();var c=
+mxConstants.STYLE_IMAGE_BACKGROUND:mxConstants.STYLE_FILLCOLOR,h="image"==e.style.shape?mxResources.get("background"):mxResources.get("fill"),h=this.createCellColorOption(h,g,"default",null,mxUtils.bind(this,function(a){c.setCellStyles(g,a,e.cells)}),c.shapeBackgroundColor);h.style.fontWeight="bold";var l=mxUtils.getValue(e.style,g,null);k.style.display=null!=l&&l!=mxConstants.NONE&&e.fill&&"image"!=e.style.shape?"":"none";for(var m=[mxConstants.DIRECTION_NORTH,mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,
+mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_RADIAL],l=0;l<m.length;l++){var n=document.createElement("option");n.setAttribute("value",m[l]);mxUtils.write(n,mxResources.get(m[l]));d.appendChild(n)}k.appendChild(d);for(l=0;l<Editor.roughFillStyles.length;l++)m=document.createElement("option"),m.setAttribute("value",Editor.roughFillStyles[l].val),mxUtils.write(m,Editor.roughFillStyles[l].dispName),f.appendChild(m);h.appendChild(f);var p=mxUtils.bind(this,function(){e=b.getSelectionState();var c=
mxUtils.getValue(e.style,mxConstants.STYLE_GRADIENT_DIRECTION,mxConstants.DIRECTION_SOUTH),g=mxUtils.getValue(e.style,"fillStyle","auto");""==c&&(c=mxConstants.DIRECTION_SOUTH);d.value=c;f.value=g;a.style.display=e.fill?"":"none";c=mxUtils.getValue(e.style,mxConstants.STYLE_FILLCOLOR,null);!e.fill||e.containsImage||null==c||c==mxConstants.NONE||"filledEdge"==e.style.shape?(f.style.display="none",k.style.display="none"):(f.style.display="1"==e.style.sketch?"":"none",k.style.display="1"!=e.style.sketch||
"solid"==g||"auto"==g?"":"none")});c.getModel().addListener(mxEvent.CHANGE,p);this.listeners.push({destroy:function(){c.getModel().removeListener(p)}});p();mxEvent.addListener(d,"change",function(a){c.setCellStyles(mxConstants.STYLE_GRADIENT_DIRECTION,d.value,e.cells);b.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_GRADIENT_DIRECTION],"values",[d.value],"cells",e.cells));mxEvent.consume(a)});mxEvent.addListener(f,"change",function(a){c.setCellStyles("fillStyle",f.value,e.cells);
-b.fireEvent(new mxEventObject("styleChanged","keys",["fillStyle"],"values",[f.value],"cells",e.cells));mxEvent.consume(a)});a.appendChild(h);a.appendChild(k);h=this.getCustomColors();for(m=0;m<h.length;m++)a.appendChild(this.createCellColorOption(h[m].title,h[m].key,h[m].defaultValue));return a};
-StyleFormatPanel.prototype.getCustomColors=function(){var a=this.editorUi.getSelectionState(),b=[];"swimlane"!=a.style.shape&&"table"!=a.style.shape||b.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"default"});return b};
+b.fireEvent(new mxEventObject("styleChanged","keys",["fillStyle"],"values",[f.value],"cells",e.cells));mxEvent.consume(a)});a.appendChild(h);a.appendChild(k);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.editorUi.getSelectionState().swimlane&&a.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"default"});return a};
StyleFormatPanel.prototype.addStroke=function(a){function b(a){var b=parseFloat(t.value),b=Math.min(999,Math.max(0,isNaN(b)?1:b));b!=mxUtils.getValue(f.style,mxConstants.STYLE_STROKEWIDTH,1)&&(d.setCellStyles(mxConstants.STYLE_STROKEWIDTH,b,f.cells),e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[b],"cells",f.cells)));t.value=b+" pt";mxEvent.consume(a)}function c(a){var b=parseFloat(x.value),b=Math.min(999,Math.max(0,isNaN(b)?1:b));b!=mxUtils.getValue(f.style,
mxConstants.STYLE_STROKEWIDTH,1)&&(d.setCellStyles(mxConstants.STYLE_STROKEWIDTH,b,f.cells),e.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_STROKEWIDTH],"values",[b],"cells",f.cells)));x.value=b+" pt";mxEvent.consume(a)}var e=this.editorUi,d=e.editor.graph,f=e.getSelectionState();a.style.paddingTop="6px";a.style.paddingBottom="4px";a.style.whiteSpace="normal";var h=document.createElement("div");h.style.fontWeight="bold";f.stroke||(h.style.display="none");var k=document.createElement("select");
-k.style.position="absolute";k.style.height="22px";k.style.padding="0px";k.style.marginTop="-3px";k.style.boxSizing="border-box";k.style.left="94px";k.style.width="80px";k.style.border="1px solid rgb(160, 160, 160)";k.style.borderRadius="4px";for(var g=["sharp","rounded","curved"],m=0;m<g.length;m++){var l=document.createElement("option");l.setAttribute("value",g[m]);mxUtils.write(l,mxResources.get(g[m]));k.appendChild(l)}mxEvent.addListener(k,"change",function(a){d.getModel().beginUpdate();try{var b=
+k.style.position="absolute";k.style.height="22px";k.style.padding="0px";k.style.marginTop="-3px";k.style.boxSizing="border-box";k.style.left="94px";k.style.width="80px";k.style.border="1px solid rgb(160, 160, 160)";k.style.borderRadius="4px";for(var g=["sharp","rounded","curved"],l=0;l<g.length;l++){var m=document.createElement("option");m.setAttribute("value",g[l]);mxUtils.write(m,mxResources.get(g[l]));k.appendChild(m)}mxEvent.addListener(k,"change",function(a){d.getModel().beginUpdate();try{var b=
[mxConstants.STYLE_ROUNDED,mxConstants.STYLE_CURVED],c=["0",null];"rounded"==k.value?c=["1",null]:"curved"==k.value&&(c=[null,"1"]);for(var g=0;g<b.length;g++)d.setCellStyles(b[g],c[g],f.cells);e.fireEvent(new mxEventObject("styleChanged","keys",b,"values",c,"cells",f.cells))}finally{d.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(k,"click",function(a){mxEvent.consume(a)});var n="image"==f.style.shape?mxConstants.STYLE_IMAGE_BORDER:mxConstants.STYLE_STROKECOLOR,g="image"==f.style.shape?
mxResources.get("border"):mxResources.get("line"),g=this.createCellColorOption(g,n,"default",null,mxUtils.bind(this,function(a){d.setCellStyles(n,a,f.cells)}),d.shapeForegroundColor);g.appendChild(k);h.appendChild(g);var p=h.cloneNode(!1);p.style.fontWeight="normal";p.style.whiteSpace="nowrap";p.style.position="relative";p.style.paddingLeft="0px";p.style.marginBottom="2px";p.style.overflow="hidden";p.style.marginTop="2px";p.style.width="220px";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}),m=this.editorUi.toolbar.addMenuFunctionInContainer(p,"geSprite-orthogonal",mxResources.get("pattern"),!1,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"))})),l=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("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_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)")})),g=p.cloneNode(!1),t=document.createElement("input");t.style.position="absolute";t.style.textAlign="right";t.style.marginTop="2px";t.style.width="52px";t.style.height="21px";t.style.left="146px";t.style.border="1px solid rgb(160, 160, 160)";t.style.borderRadius="4px";t.style.boxSizing="border-box";t.setAttribute("title",mxResources.get("linewidth"));p.appendChild(t);var x=t.cloneNode(!0);u.appendChild(x);var w=this.createStepper(t,
b,1,9);w.style.display=t.style.display;w.style.marginTop="2px";w.style.left="198px";p.appendChild(w);w=this.createStepper(x,c,1,9);w.style.display=x.style.display;w.style.marginTop="2px";x.style.position="absolute";w.style.left="198px";u.appendChild(w);mxEvent.addListener(t,"blur",b);mxEvent.addListener(t,"change",b);mxEvent.addListener(x,"blur",c);mxEvent.addListener(x,"change",c);var y=this.editorUi.toolbar.addMenuFunctionInContainer(g,"geSprite-orthogonal",mxResources.get("waypoints"),!1,mxUtils.bind(this,
@@ -3186,11 +3188,11 @@ null,!1,Format.classicFilledMarkerImage.src),"scaleX(-1)"),Format.processMenuIco
"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERmany",0],null,null,!1,Format.ERmanyMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERoneToMany",0],null,null,!1,Format.ERoneToManyMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToOne",0],null,null,!1,Format.ERzeroToOneMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,
"",[mxConstants.STYLE_ENDARROW,"endFill"],["ERzeroToMany",0],null,null,!1,Format.ERzeroToManyMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["doubleBlock",0],null,null,!1,Format.doubleBlockMarkerImage.src),"scaleX(-1)"),Format.processMenuIcon(this.editorUi.menus.edgeStyleChange(a,"",[mxConstants.STYLE_ENDARROW,"endFill"],["doubleBlock",1],null,null,!1,Format.doubleBlockFilledMarkerImage.src),"scaleX(-1)")):this.editorUi.menus.edgeStyleChange(a,
"",[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],"geIcon geSprite geSprite-endblocktrans",null,!1).setAttribute("title",mxResources.get("block"));a.div.style.width="40px";window.setTimeout(mxUtils.bind(this,function(){null!=a.div&&mxUtils.fit(a.div)}),0)}})),w=this.addArrow(v,8);w.nextSibling.style.position="relative";w.nextSibling.style.top="-2px";w=this.addArrow(y,10);w.nextSibling.style.position="relative";w.nextSibling.style.top="-3px";y.getElementsByTagName("img")[0].style.top="-1px";
-this.addArrow(E);this.addArrow(I);w=this.addArrow(m,9);w.className="geIcon";w.style.width="auto";var B=this.addArrow(l,9);B.className="geIcon";B.style.width="22px";var G=document.createElement("div");G.style.width="84px";G.style.height="1px";G.style.borderBottom="1px solid "+this.defaultStrokeColor;G.style.marginBottom="7px";w.appendChild(G);var z=document.createElement("div");z.style.width="23px";z.style.height="1px";z.style.borderBottom="1px solid "+this.defaultStrokeColor;z.style.marginBottom=
-"7px";B.appendChild(z);m.style.height="15px";m.style.marginLeft="16px";l.style.height="15px";l.style.marginLeft="3px";v.style.marginLeft="10px";v.style.height="15px";y.style.marginLeft="10px";y.style.height="17px";E.style.marginLeft="3px";E.style.height="17px";I.style.marginLeft="3px";I.style.height="17px";a.appendChild(h);a.appendChild(u);a.appendChild(p);m=p.cloneNode(!1);m.style.padding="5px 4px 6px 0px";m.style.fontWeight="normal";l=document.createElement("div");l.style.position="absolute";l.style.marginLeft=
-"0px";l.style.marginBottom="12px";l.style.marginTop="2px";l.style.fontWeight="normal";l.style.width="76px";mxUtils.write(l,mxResources.get("lineend"));m.appendChild(l);var F,K,L=this.addUnitInput(m,"pt",98,52,function(){F.apply(this,arguments)}),N=this.addUnitInput(m,"pt",30,52,function(){K.apply(this,arguments)});mxUtils.br(m);w=document.createElement("div");w.style.height="8px";m.appendChild(w);l=l.cloneNode(!1);mxUtils.write(l,mxResources.get("linestart"));m.appendChild(l);var J,R,Y=this.addUnitInput(m,
-"pt",98,52,function(){J.apply(this,arguments)}),ca=this.addUnitInput(m,"pt",30,52,function(){R.apply(this,arguments)});mxUtils.br(m);this.addLabel(m,mxResources.get("spacing"),98,52);this.addLabel(m,mxResources.get("size"),30,52);mxUtils.br(m);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";l=document.createElement("div");l.style.position="absolute";
-l.style.marginLeft="3px";l.style.marginBottom="12px";l.style.marginTop="1px";l.style.fontWeight="normal";l.style.width="120px";mxUtils.write(l,mxResources.get("perimeter"));h.appendChild(l);var O,S=this.addUnitInput(h,"pt",30,52,function(){O.apply(this,arguments)});f.edges.length==f.cells.length?(a.appendChild(g),a.appendChild(m)):f.vertices.length==f.cells.length&&a.appendChild(h);var U=mxUtils.bind(this,function(b,c,d){function g(a,b,c,d){c=c.getElementsByTagName("div")[0];null!=c&&(c.className=
+this.addArrow(E);this.addArrow(I);w=this.addArrow(l,9);w.className="geIcon";w.style.width="auto";var B=this.addArrow(m,9);B.className="geIcon";B.style.width="22px";var G=document.createElement("div");G.style.width="84px";G.style.height="1px";G.style.borderBottom="1px solid "+this.defaultStrokeColor;G.style.marginBottom="7px";w.appendChild(G);var z=document.createElement("div");z.style.width="23px";z.style.height="1px";z.style.borderBottom="1px solid "+this.defaultStrokeColor;z.style.marginBottom=
+"7px";B.appendChild(z);l.style.height="15px";l.style.marginLeft="16px";m.style.height="15px";m.style.marginLeft="3px";v.style.marginLeft="10px";v.style.height="15px";y.style.marginLeft="10px";y.style.height="17px";E.style.marginLeft="3px";E.style.height="17px";I.style.marginLeft="3px";I.style.height="17px";a.appendChild(h);a.appendChild(u);a.appendChild(p);l=p.cloneNode(!1);l.style.padding="5px 4px 6px 0px";l.style.fontWeight="normal";m=document.createElement("div");m.style.position="absolute";m.style.marginLeft=
+"0px";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 F,K,L=this.addUnitInput(l,"pt",98,52,function(){F.apply(this,arguments)}),O=this.addUnitInput(l,"pt",30,52,function(){K.apply(this,arguments)});mxUtils.br(l);w=document.createElement("div");w.style.height="8px";l.appendChild(w);m=m.cloneNode(!1);mxUtils.write(m,mxResources.get("linestart"));l.appendChild(m);var J,R,Z=this.addUnitInput(l,
+"pt",98,52,function(){J.apply(this,arguments)}),ca=this.addUnitInput(l,"pt",30,52,function(){R.apply(this,arguments)});mxUtils.br(l);this.addLabel(l,mxResources.get("spacing"),98,52);this.addLabel(l,mxResources.get("size"),30,52);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 P,S=this.addUnitInput(h,"pt",30,52,function(){P.apply(this,arguments)});f.edges.length==f.cells.length?(a.appendChild(g),a.appendChild(l)):f.vertices.length==f.cells.length&&a.appendChild(h);var U=mxUtils.bind(this,function(b,c,d){function g(a,b,c,d){c=c.getElementsByTagName("div")[0];null!=c&&(c.className=
e.getCssClassForMarker(d,f.style.shape,a,b),c.nextSibling.style.marginLeft="1px",c.nextSibling.style.paddingRight="5px","geSprite geSprite-noarrow"==c.className?(c.innerHTML=mxUtils.htmlEntities(mxResources.get("none")),c.style.backgroundImage="none",c.style.verticalAlign="top",c.style.marginTop="4px",c.style.fontSize="10px",c.style.filter="none",c.style.color=this.defaultStrokeColor,c.nextSibling.style.marginTop="0px"):(c.nextSibling.style.position="relative",c.nextSibling.style.top="-2px"));return c}
f=e.getSelectionState();if(d||document.activeElement!=t)b=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_STROKEWIDTH,1)),t.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=x)b=parseFloat(mxUtils.getValue(f.style,mxConstants.STYLE_STROKEWIDTH,1)),x.value=isNaN(b)?"":b+" pt";k.style.visibility="connector"==f.style.shape||"filledEdge"==f.style.shape?"":"hidden";"1"==mxUtils.getValue(f.style,mxConstants.STYLE_CURVED,null)?k.value="curved":"1"==mxUtils.getValue(f.style,mxConstants.STYLE_ROUNDED,
null)&&(k.value="rounded");"1"==mxUtils.getValue(f.style,mxConstants.STYLE_DASHED,null)?null==mxUtils.getValue(f.style,mxConstants.STYLE_DASH_PATTERN,null)?G.style.borderBottom="1px dashed "+this.defaultStrokeColor:G.style.borderBottom="1px dotted "+this.defaultStrokeColor:G.style.borderBottom="1px solid "+this.defaultStrokeColor;z.style.borderBottom=G.style.borderBottom;b=y.getElementsByTagName("div")[0];null!=b&&(c=mxUtils.getValue(f.style,mxConstants.STYLE_EDGE,null),"1"==mxUtils.getValue(f.style,
@@ -3198,31 +3200,31 @@ mxConstants.STYLE_NOEDGESTYLE,null)&&(c=null),"orthogonalEdgeStyle"==c&&"1"==mxU
mxUtils.getValue(f.style,mxConstants.STYLE_ELBOW,null)?"geSprite-verticalisometric":"geSprite-horizontalisometric"):"geSprite geSprite-orthogonal");b=v.getElementsByTagName("div")[0];null!=b&&(b.className="link"==f.style.shape?"geSprite geSprite-linkedge":"flexArrow"==f.style.shape?"geSprite geSprite-arrow":"arrow"==f.style.shape?"geSprite geSprite-simplearrow":"geSprite geSprite-connection");f.edges.length==f.cells.length?(u.style.display="",p.style.display="none"):(u.style.display="none",p.style.display=
"");Graph.lineJumpsEnabled&&0<f.edges.length&&0==f.vertices.length&&f.lineJumps&&(a.style.borderBottomStyle="none");b=g(mxUtils.getValue(f.style,mxConstants.STYLE_STARTARROW,null),mxUtils.getValue(f.style,"startFill","1"),E,"start");c=g(mxUtils.getValue(f.style,mxConstants.STYLE_ENDARROW,null),mxUtils.getValue(f.style,"endFill","1"),I,"end");null!=b&&null!=c&&("arrow"==f.style.shape?(b.className="geSprite geSprite-noarrow",c.className="geSprite geSprite-endblocktrans"):"link"==f.style.shape&&(b.className=
"geSprite geSprite-noarrow",c.className="geSprite geSprite-noarrow"));mxUtils.setOpacity(y,"arrow"==f.style.shape?30:100);"connector"!=f.style.shape&&"flexArrow"!=f.style.shape&&"filledEdge"!=f.style.shape?(mxUtils.setOpacity(E,30),mxUtils.setOpacity(I,30)):(mxUtils.setOpacity(E,100),mxUtils.setOpacity(I,100));if(d||document.activeElement!=ca)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)),ca.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=
-Y)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),Y.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=N)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),N.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=Y)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),L.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=S)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_PERIMETER_SPACING,
-0)),S.value=isNaN(b)?"":b+" pt"});R=this.installInputHandler(ca,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");J=this.installInputHandler(Y,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");K=this.installInputHandler(N,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");F=this.installInputHandler(L,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");O=this.installInputHandler(S,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(t,
-U);this.addKeyHandler(ca,U);this.addKeyHandler(Y,U);this.addKeyHandler(N,U);this.addKeyHandler(L,U);this.addKeyHandler(S,U);d.getModel().addListener(mxEvent.CHANGE,U);this.listeners.push({destroy:function(){d.getModel().removeListener(U)}});U();return a};
+Z)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0)),Z.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=O)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE)),O.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=Z)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0)),L.value=isNaN(b)?"":b+" pt";if(d||document.activeElement!=S)b=parseInt(mxUtils.getValue(f.style,mxConstants.STYLE_PERIMETER_SPACING,
+0)),S.value=isNaN(b)?"":b+" pt"});R=this.installInputHandler(ca,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");J=this.installInputHandler(Z,mxConstants.STYLE_SOURCE_PERIMETER_SPACING,0,-999,999," pt");K=this.installInputHandler(O,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE,0,999," pt");F=this.installInputHandler(L,mxConstants.STYLE_TARGET_PERIMETER_SPACING,0,-999,999," pt");P=this.installInputHandler(S,mxConstants.STYLE_PERIMETER_SPACING,0,0,999," pt");this.addKeyHandler(t,
+U);this.addKeyHandler(ca,U);this.addKeyHandler(Z,U);this.addKeyHandler(O,U);this.addKeyHandler(L,U);this.addKeyHandler(S,U);d.getModel().addListener(mxEvent.CHANGE,U);this.listeners.push({destroy:function(){d.getModel().removeListener(U)}});U();return a};
StyleFormatPanel.prototype.addLineJumps=function(a){var b=this.editorUi,c=b.editor.graph,e=b.getSelectionState();if(Graph.lineJumpsEnabled&&0<e.edges.length&&0==e.vertices.length&&e.lineJumps){a.style.padding="2px 0px 24px 14px";var d=document.createElement("div");d.style.position="absolute";d.style.maxWidth="82px";d.style.overflow="hidden";d.style.textOverflow="ellipsis";mxUtils.write(d,mxResources.get("lineJumps"));a.appendChild(d);var f=document.createElement("select");f.style.position="absolute";
f.style.height="21px";f.style.padding="0px";f.style.marginTop="-2px";f.style.boxSizing="border-box";f.style.right="76px";f.style.width="54px";f.style.border="1px solid rgb(160, 160, 160)";f.style.borderRadius="4px";for(var d=["none","arc","gap","sharp","line"],h=0;h<d.length;h++){var k=document.createElement("option");k.setAttribute("value",d[h]);mxUtils.write(k,mxResources.get(d[h]));f.appendChild(k)}mxEvent.addListener(f,"change",function(a){c.getModel().beginUpdate();try{c.setCellStyles("jumpStyle",
-f.value,e.cells),b.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[f.value],"cells",e.cells))}finally{c.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(f,"click",function(a){mxEvent.consume(a)});a.appendChild(f);var g,m=this.addUnitInput(a,"pt",16,42,function(){g.apply(this,arguments)});g=this.installInputHandler(m,"jumpSize",Graph.defaultJumpSize,0,999," pt");var l=mxUtils.bind(this,function(a,c,d){e=b.getSelectionState();f.value=mxUtils.getValue(e.style,
-"jumpStyle","none");if(d||document.activeElement!=m)a=parseInt(mxUtils.getValue(e.style,"jumpSize",Graph.defaultJumpSize)),m.value=isNaN(a)?"":a+" pt"});this.addKeyHandler(m,l);c.getModel().addListener(mxEvent.CHANGE,l);this.listeners.push({destroy:function(){c.getModel().removeListener(l)}});l()}else a.style.display="none";return a};
+f.value,e.cells),b.fireEvent(new mxEventObject("styleChanged","keys",["jumpStyle"],"values",[f.value],"cells",e.cells))}finally{c.getModel().endUpdate()}mxEvent.consume(a)});mxEvent.addListener(f,"click",function(a){mxEvent.consume(a)});a.appendChild(f);var g,l=this.addUnitInput(a,"pt",16,42,function(){g.apply(this,arguments)});g=this.installInputHandler(l,"jumpSize",Graph.defaultJumpSize,0,999," pt");var m=mxUtils.bind(this,function(a,c,d){e=b.getSelectionState();f.value=mxUtils.getValue(e.style,
+"jumpStyle","none");if(d||document.activeElement!=l)a=parseInt(mxUtils.getValue(e.style,"jumpSize",Graph.defaultJumpSize)),l.value=isNaN(a)?"":a+" pt"});this.addKeyHandler(l,m);c.getModel().addListener(mxEvent.CHANGE,m);this.listeners.push({destroy:function(){c.getModel().removeListener(m)}});m()}else a.style.display="none";return a};
StyleFormatPanel.prototype.addEffects=function(a){var b=this.editorUi,c=b.editor.graph,e=b.getSelectionState();a.style.paddingTop="4px";a.style.paddingBottom="0px";var d=document.createElement("table");d.style.width="210px";d.style.fontWeight="bold";d.style.tableLayout="fixed";var f=document.createElement("tbody"),h=document.createElement("tr");h.style.padding="0px";var k=document.createElement("td");k.style.padding="0px";k.style.width="50%";k.setAttribute("valign","top");var g=k.cloneNode(!0);g.style.paddingLeft=
-"8px";h.appendChild(k);h.appendChild(g);f.appendChild(h);d.appendChild(f);a.appendChild(d);var m=k,l=0,n=mxUtils.bind(this,function(a,b,c){a=this.createCellOption(a,b,c);a.style.width="100%";m.appendChild(a);m=m==k?g:k;l++}),p=mxUtils.bind(this,function(a,c,d){e=b.getSelectionState();k.innerHTML="";g.innerHTML="";m=k;e.rounded&&n(mxResources.get("rounded"),mxConstants.STYLE_ROUNDED,0);"swimlane"==e.style.shape&&n(mxResources.get("divider"),"swimlaneLine",1);e.containsImage||n(mxResources.get("shadow"),
-mxConstants.STYLE_SHADOW,0);e.glass&&n(mxResources.get("glass"),mxConstants.STYLE_GLASS,0);n(mxResources.get("sketch"),"sketch",0)});c.getModel().addListener(mxEvent.CHANGE,p);this.listeners.push({destroy:function(){c.getModel().removeListener(p)}});p();return a};StyleFormatPanel.prototype.addStyleOps=function(a){a.style.paddingTop="10px";a.style.paddingBottom="10px";this.addActions(a,["setAsDefaultStyle"]);return a};DiagramStylePanel=function(a,b,c){BaseFormatPanel.call(this,a,b,c);this.init()};
+"8px";h.appendChild(k);h.appendChild(g);f.appendChild(h);d.appendChild(f);a.appendChild(d);var l=k,m=0,n=mxUtils.bind(this,function(a,b,c){a=this.createCellOption(a,b,c);a.style.width="100%";l.appendChild(a);l=l==k?g:k;m++}),p=mxUtils.bind(this,function(a,c,d){e=b.getSelectionState();k.innerHTML="";g.innerHTML="";l=k;e.rounded&&n(mxResources.get("rounded"),mxConstants.STYLE_ROUNDED,0);e.swimlane&&n(mxResources.get("divider"),"swimlaneLine",1);e.containsImage||n(mxResources.get("shadow"),mxConstants.STYLE_SHADOW,
+0);e.glass&&n(mxResources.get("glass"),mxConstants.STYLE_GLASS,0);n(mxResources.get("sketch"),"sketch",0)});c.getModel().addListener(mxEvent.CHANGE,p);this.listeners.push({destroy:function(){c.getModel().removeListener(p)}});p();return a};StyleFormatPanel.prototype.addStyleOps=function(a){a.style.paddingTop="10px";a.style.paddingBottom="10px";this.addActions(a,["setAsDefaultStyle"]);return a};DiagramStylePanel=function(a,b,c){BaseFormatPanel.call(this,a,b,c);this.init()};
mxUtils.extend(DiagramStylePanel,BaseFormatPanel);DiagramStylePanel.prototype.init=function(){var a=this.editorUi;this.darkModeChangedListener=mxUtils.bind(this,function(){this.format.cachedStyleEntries=[]});a.addListener("darkModeChanged",this.darkModeChangedListener);this.container.appendChild(this.addView(this.createPanel()))};
-DiagramStylePanel.prototype.addView=function(a){var b=this.editorUi,c=b.editor.graph,e=c.getModel();a.style.whiteSpace="normal";var d="1"==c.currentVertexStyle.sketch&&"1"==c.currentEdgeStyle.sketch,f="1"==c.currentVertexStyle.rounded,h="1"==c.currentEdgeStyle.curved,k=document.createElement("div");k.style.paddingBottom="12px";k.style.marginRight="16px";a.style.paddingTop="8px";var g=document.createElement("table");g.style.width="210px";g.style.fontWeight="bold";var m=document.createElement("tbody"),
-l=document.createElement("tr");l.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";l.appendChild(n);l.appendChild(p);m.appendChild(l);g.appendChild(m);n.appendChild(this.createOption(mxResources.get("sketch"),function(){return d},function(a){(d=a)?(c.currentEdgeStyle.sketch="1",c.currentVertexStyle.sketch="1"):(delete c.currentEdgeStyle.sketch,delete c.currentVertexStyle.sketch);
-c.updateCellStyles({sketch:a?"1":null},c.getVerticesAndEdges())},null,function(a){a.style.width="auto"}));p.appendChild(this.createOption(mxResources.get("rounded"),function(){return f},function(a){(f=a)?(c.currentEdgeStyle.rounded="1",c.currentVertexStyle.rounded="1"):(delete c.currentEdgeStyle.rounded,delete c.currentVertexStyle.rounded);c.updateCellStyles({rounded:a?"1":"0"},c.getVerticesAndEdges())},null,function(a){a.style.width="auto"}));n=n.cloneNode(!1);p=p.cloneNode(!1);l=l.cloneNode(!1);
-l.appendChild(n);l.appendChild(p);m.appendChild(l);n.appendChild(this.createOption(mxResources.get("curved"),function(){return h},function(a){(h=a)?c.currentEdgeStyle.curved="1":delete c.currentEdgeStyle.curved;c.updateCellStyles({curved:a?"1":null},c.getVerticesAndEdges(!1,!0))},null,function(a){a.style.width="auto"}));k.appendChild(g);a.appendChild(k);var r=["fillColor","strokeColor","fontColor","gradientColor"],u=mxUtils.bind(this,function(a,b){var d=c.getVerticesAndEdges();e.beginUpdate();try{for(var f=
-0;f<d.length;f++){var g=c.getCellStyle(d[f]);null!=g.labelBackgroundColor&&c.updateCellStyles({labelBackgroundColor:null!=b?b.background:null},[d[f]]);for(var k=e.isEdge(d[f]),h=e.getStyle(d[f]),m=k?c.currentEdgeStyle:c.currentVertexStyle,l=0;l<a.length;l++)if(null!=g[a[l]]&&g[a[l]]!=mxConstants.NONE||a[l]!=mxConstants.STYLE_FILLCOLOR&&a[l]!=mxConstants.STYLE_STROKECOLOR)h=mxUtils.setStyle(h,a[l],m[a[l]]);e.setStyle(d[f],h)}}finally{e.endUpdate()}}),v=mxUtils.bind(this,function(a,b,c){if(null!=a)for(var d=
+DiagramStylePanel.prototype.addView=function(a){var b=this.editorUi,c=b.editor.graph,e=c.getModel();a.style.whiteSpace="normal";var d="1"==c.currentVertexStyle.sketch&&"1"==c.currentEdgeStyle.sketch,f="1"==c.currentVertexStyle.rounded,h="1"==c.currentEdgeStyle.curved,k=document.createElement("div");k.style.paddingBottom="12px";k.style.marginRight="16px";a.style.paddingTop="8px";var g=document.createElement("table");g.style.width="210px";g.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);g.appendChild(l);n.appendChild(this.createOption(mxResources.get("sketch"),function(){return d},function(a){(d=a)?(c.currentEdgeStyle.sketch="1",c.currentVertexStyle.sketch="1"):(delete c.currentEdgeStyle.sketch,delete c.currentVertexStyle.sketch);
+c.updateCellStyles({sketch:a?"1":null},c.getVerticesAndEdges())},null,function(a){a.style.width="auto"}));p.appendChild(this.createOption(mxResources.get("rounded"),function(){return f},function(a){(f=a)?(c.currentEdgeStyle.rounded="1",c.currentVertexStyle.rounded="1"):(delete c.currentEdgeStyle.rounded,delete c.currentVertexStyle.rounded);c.updateCellStyles({rounded:a?"1":"0"},c.getVerticesAndEdges())},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"),function(){return h},function(a){(h=a)?c.currentEdgeStyle.curved="1":delete c.currentEdgeStyle.curved;c.updateCellStyles({curved:a?"1":null},c.getVerticesAndEdges(!1,!0))},null,function(a){a.style.width="auto"}));k.appendChild(g);a.appendChild(k);var r=["fillColor","strokeColor","fontColor","gradientColor"],u=mxUtils.bind(this,function(a,b){var d=c.getVerticesAndEdges();e.beginUpdate();try{for(var f=
+0;f<d.length;f++){var g=c.getCellStyle(d[f]);null!=g.labelBackgroundColor&&c.updateCellStyles({labelBackgroundColor:null!=b?b.background:null},[d[f]]);for(var k=e.isEdge(d[f]),h=e.getStyle(d[f]),l=k?c.currentEdgeStyle:c.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]]);e.setStyle(d[f],h)}}finally{e.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,d,e,f){if(null!=a){null!=d&&null!=b.labelBackgroundColor&&(e=null!=e?e.background:null,f=null!=f?f:c,null==e&&(e=f.background),null==e&&(e=f.defaultPageBackgroundColor),b.labelBackgroundColor=e);for(var g in a)if(null==d||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=c.getVerticesAndEdges(!0,!0);if(0<a.length){e.beginUpdate();try{c.updateCellStyles({sketch:null,rounded:null},a),c.updateCellStyles({curved:null},c.getVerticesAndEdges(!1,!0))}finally{e.endUpdate()}}b.clearDefaultStyle()}));n.setAttribute("title",mxResources.get("reset"));n.style.textOverflow="ellipsis";n.style.maxWidth="90px";p.appendChild(n);var x=mxUtils.bind(this,function(a,b,d,f,g){var k=document.createElement("div");
-k.style.position="absolute";k.style.display="inline-block";k.style.overflow="hidden";k.style.pointerEvents="none";k.style.width="100%";k.style.height="100%";g.appendChild(k);var h=new Graph(k,null,null,c.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,k){k=null!=k?k:!0;var m=mxUtils.clone(c.getCellStyle.apply(this,arguments)),l=c.stylesheet.getDefaultVertexStyle(),
-n=b;e.isEdge(g)&&(l=c.stylesheet.getDefaultEdgeStyle(),n=d);v(m,r,l);t(a,m,g,f,h);t(n,m,g,f,h);k&&(m=c.postProcessCellStyle(g,m));return m};h.model.beginUpdate();try{var m=h.insertVertex(h.getDefaultParent(),null,"Shape",14,8,70,40,"strokeWidth=2;"),l=h.insertEdge(h.getDefaultParent(),null,"Connector",m,m,"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;endSize=5;strokeWidth=2;");l.geometry.points=[new mxPoint(32,70)];l.geometry.offset=new mxPoint(0,8)}finally{h.model.endUpdate()}}),
-w=document.createElement("div");w.style.position="relative";a.appendChild(w);null==this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var y=mxUtils.bind(this,function(a,g,k,m,l){var n=this.format.cachedStyleEntries[l];null==n&&(n=document.createElement("div"),n.style.display="inline-block",n.style.position="relative",n.style.width="96px",n.style.height="90px",n.style.cursor="pointer",n.style.border="1px solid gray",n.style.borderRadius="8px",n.style.margin="2px",n.style.overflow=
-"hidden",null!=m&&null!=m.background&&(n.style.backgroundColor=m.background),x(a,g,k,m,n),mxEvent.addGestureListeners(n,mxUtils.bind(this,function(a){n.style.opacity=.5}),null,mxUtils.bind(this,function(l){n.style.opacity=1;c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);t(a,c.currentVertexStyle);t(a,c.currentEdgeStyle);t(g,c.currentVertexStyle);t(k,c.currentEdgeStyle);d?(c.currentEdgeStyle.sketch="1",c.currentVertexStyle.sketch="1"):(c.currentEdgeStyle.sketch=
-"0",c.currentVertexStyle.sketch="0");c.currentVertexStyle.rounded=f?"1":"0";c.currentEdgeStyle.rounded="1";c.currentEdgeStyle.curved=h?"1":"0";e.beginUpdate();try{var p=r.slice(),v;for(v in a)p.push(v);u(p,m);var x=new ChangePageSetup(b,null!=m?m.background:null);x.ignoreImage=!0;e.execute(x);e.execute(new ChangeGridColor(b,null!=m&&null!=m.gridColor?m.gridColor:c.view.defaultGridColor))}finally{e.endUpdate()}})),mxEvent.addListener(n,"mouseenter",mxUtils.bind(this,function(b){var d=c.getCellStyle;
-b=c.background;var f=c.view.gridColor;c.background=null!=m?m.background:null;c.view.gridColor=null!=m&&null!=m.gridColor?m.gridColor:c.view.defaultGridColor;c.getCellStyle=function(b,f){f=null!=f?f:!0;var h=mxUtils.clone(d.apply(this,arguments)),l=c.stylesheet.getDefaultVertexStyle(),n=g;e.isEdge(b)&&(l=c.stylesheet.getDefaultEdgeStyle(),n=k);v(h,r,l);t(a,h,b,m);t(n,h,b,m);f&&(h=this.postProcessCellStyle(b,h));return h};c.refresh();c.getCellStyle=d;c.background=b;c.view.gridColor=f})),mxEvent.addListener(n,
-"mouseleave",mxUtils.bind(this,function(a){c.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[l]=n));w.appendChild(n)}),E=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=null!=this.format.currentStylePage?this.format.currentStylePage:0;var I=[],B=mxUtils.bind(this,function(){0<I.length&&(I[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=
+k.style.position="absolute";k.style.display="inline-block";k.style.overflow="hidden";k.style.pointerEvents="none";k.style.width="100%";k.style.height="100%";g.appendChild(k);var h=new Graph(k,null,null,c.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,k){k=null!=k?k:!0;var l=mxUtils.clone(c.getCellStyle.apply(this,arguments)),m=c.stylesheet.getDefaultVertexStyle(),
+n=b;e.isEdge(g)&&(m=c.stylesheet.getDefaultEdgeStyle(),n=d);v(l,r,m);t(a,l,g,f,h);t(n,l,g,f,h);k&&(l=c.postProcessCellStyle(g,l));return l};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()}}),
+w=document.createElement("div");w.style.position="relative";a.appendChild(w);null==this.format.cachedStyleEntries&&(this.format.cachedStyleEntries=[]);var y=mxUtils.bind(this,function(a,g,k,l,m){var n=this.format.cachedStyleEntries[m];null==n&&(n=document.createElement("div"),n.style.display="inline-block",n.style.position="relative",n.style.width="96px",n.style.height="90px",n.style.cursor="pointer",n.style.border="1px solid gray",n.style.borderRadius="8px",n.style.margin="2px",n.style.overflow=
+"hidden",null!=l&&null!=l.background&&(n.style.backgroundColor=l.background),x(a,g,k,l,n),mxEvent.addGestureListeners(n,mxUtils.bind(this,function(a){n.style.opacity=.5}),null,mxUtils.bind(this,function(m){n.style.opacity=1;c.currentVertexStyle=mxUtils.clone(c.defaultVertexStyle);c.currentEdgeStyle=mxUtils.clone(c.defaultEdgeStyle);t(a,c.currentVertexStyle);t(a,c.currentEdgeStyle);t(g,c.currentVertexStyle);t(k,c.currentEdgeStyle);d?(c.currentEdgeStyle.sketch="1",c.currentVertexStyle.sketch="1"):(c.currentEdgeStyle.sketch=
+"0",c.currentVertexStyle.sketch="0");c.currentVertexStyle.rounded=f?"1":"0";c.currentEdgeStyle.rounded="1";c.currentEdgeStyle.curved=h?"1":"0";e.beginUpdate();try{var p=r.slice(),v;for(v in a)p.push(v);u(p,l);var x=new ChangePageSetup(b,null!=l?l.background:null);x.ignoreImage=!0;e.execute(x);e.execute(new ChangeGridColor(b,null!=l&&null!=l.gridColor?l.gridColor:c.view.defaultGridColor))}finally{e.endUpdate()}})),mxEvent.addListener(n,"mouseenter",mxUtils.bind(this,function(b){var d=c.getCellStyle;
+b=c.background;var f=c.view.gridColor;c.background=null!=l?l.background:null;c.view.gridColor=null!=l&&null!=l.gridColor?l.gridColor:c.view.defaultGridColor;c.getCellStyle=function(b,f){f=null!=f?f:!0;var h=mxUtils.clone(d.apply(this,arguments)),m=c.stylesheet.getDefaultVertexStyle(),n=g;e.isEdge(b)&&(m=c.stylesheet.getDefaultEdgeStyle(),n=k);v(h,r,m);t(a,h,b,l);t(n,h,b,l);f&&(h=this.postProcessCellStyle(b,h));return h};c.refresh();c.getCellStyle=d;c.background=b;c.view.gridColor=f})),mxEvent.addListener(n,
+"mouseleave",mxUtils.bind(this,function(a){c.refresh()})),mxClient.IS_IE||mxClient.IS_IE11||(this.format.cachedStyleEntries[m]=n));w.appendChild(n)}),E=Math.ceil(Editor.styles.length/10);this.format.currentStylePage=null!=this.format.currentStylePage?this.format.currentStylePage:0;var I=[],B=mxUtils.bind(this,function(){0<I.length&&(I[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];y(b.commonStyle,b.vertexStyle,b.edgeStyle,b.graph,a)}}),G=mxUtils.bind(this,function(a){0<=a&&a<E&&(I[this.format.currentStylePage].style.background="transparent",w.innerHTML="",this.format.currentStylePage=a,B())});if(1<E){k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.position="relative";k.style.textAlign="center";k.style.paddingTop="4px";k.style.width="210px";a.style.paddingBottom="8px";for(p=0;p<E;p++){var z=document.createElement("div");z.style.display="inline-block";
z.style.width="6px";z.style.height="6px";z.style.marginLeft="4px";z.style.marginRight="3px";z.style.borderRadius="3px";z.style.cursor="pointer";z.style.background="transparent";z.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(a,b){mxEvent.addListener(z,"click",mxUtils.bind(this,function(){G(a)}))})(p,z);k.appendChild(z);I.push(z)}a.appendChild(k);B();15>E&&(g=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.position="absolute",n.style.left="0px",n.style.top="0px",n.style.bottom="0px",n.style.width="24px",n.style.height="24px",n.style.margin="0px",n.style.cursor="pointer",n.style.opacity="0.5",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="center center",n.style.backgroundSize="24px 24px",n.style.backgroundImage="url("+Editor.previousImage+")",Editor.isDarkMode()&&(n.style.filter="invert(100%)"),p=n.cloneNode(!1),p.style.backgroundImage=
@@ -3242,14 +3244,14 @@ e.fireEvent(new mxEventObject("gridEnabledChanged")))},Editor.isDarkMode()?d.vie
DiagramFormatPanel.prototype.addDocumentProperties=function(a){a.appendChild(this.createTitle(mxResources.get("options")));return a};
DiagramFormatPanel.prototype.addPaperSize=function(a){var b=this.editorUi,c=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("paperSize")));var e=PageSetupDialog.addPageFormatPanel(a,"formatpanel",c.pageFormat,function(a){if(null==c.pageFormat||c.pageFormat.width!=a.width||c.pageFormat.height!=a.height)a=new ChangePageSetup(b,null,null,a),a.ignoreColor=!0,a.ignoreImage=!0,c.model.execute(a)});this.addKeyHandler(e.widthInput,function(){e.set(c.pageFormat)});this.addKeyHandler(e.heightInput,
function(){e.set(c.pageFormat)});var d=function(){e.set(c.pageFormat)};b.addListener("pageFormatChanged",d);this.listeners.push({destroy:function(){b.removeListener(d)}});c.getModel().addListener(mxEvent.CHANGE,d);this.listeners.push({destroy:function(){c.getModel().removeListener(d)}});return a};DiagramFormatPanel.prototype.addStyleOps=function(a){this.addActions(a,["editData"]);this.addActions(a,["clearDefaultStyle"]);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(a,b,c){mxShape.call(this);this.line=a;this.stroke=b;this.strokewidth=null!=c?c:1;this.updateBoundsFromLine()}function b(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function f(){mxCylinder.call(this)}function h(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function m(){mxShape.call(this)}function l(){mxShape.call(this)}function n(a,b,c,d){mxShape.call(this);
+DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(a,b,c){mxShape.call(this);this.line=a;this.stroke=b;this.strokewidth=null!=c?c:1;this.updateBoundsFromLine()}function b(){mxSwimlane.call(this)}function c(){mxCylinder.call(this)}function e(){mxCylinder.call(this)}function d(){mxActor.call(this)}function f(){mxCylinder.call(this)}function h(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function l(){mxShape.call(this)}function m(){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 p(){mxActor.call(this)}function r(){mxCylinder.call(this)}function u(){mxCylinder.call(this)}function v(){mxActor.call(this)}function t(){mxActor.call(this)}function x(){mxActor.call(this)}function w(){mxActor.call(this)}function y(){mxActor.call(this)}function E(){mxActor.call(this)}function I(){mxActor.call(this)}function B(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,B.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,B.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,B.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,B.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,B.prototype.curveTo);this.originalArcTo=
-this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,B.prototype.arcTo)}function G(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function F(){mxActor.call(this)}function K(){mxActor.call(this)}function L(){mxActor.call(this)}function N(){mxRectangleShape.call(this)}function J(){mxRectangleShape.call(this)}function R(){mxCylinder.call(this)}function Y(){mxShape.call(this)}function ca(){mxShape.call(this)}function O(){mxEllipse.call(this)}function S(){mxShape.call(this)}function U(){mxShape.call(this)}
+this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,B.prototype.arcTo)}function G(){mxRectangleShape.call(this)}function z(){mxRectangleShape.call(this)}function F(){mxActor.call(this)}function K(){mxActor.call(this)}function L(){mxActor.call(this)}function O(){mxRectangleShape.call(this)}function J(){mxRectangleShape.call(this)}function R(){mxCylinder.call(this)}function Z(){mxShape.call(this)}function ca(){mxShape.call(this)}function P(){mxEllipse.call(this)}function S(){mxShape.call(this)}function U(){mxShape.call(this)}
function Q(){mxRectangleShape.call(this)}function X(){mxShape.call(this)}function ka(){mxShape.call(this)}function ma(){mxShape.call(this)}function oa(){mxShape.call(this)}function pa(){mxShape.call(this)}function ga(){mxCylinder.call(this)}function na(){mxCylinder.call(this)}function ua(){mxRectangleShape.call(this)}function qa(){mxDoubleEllipse.call(this)}function ra(){mxDoubleEllipse.call(this)}function la(){mxArrowConnector.call(this);this.spacing=0}function ia(){mxArrowConnector.call(this);this.spacing=
-0}function ja(){mxActor.call(this)}function ea(){mxRectangleShape.call(this)}function fa(){mxActor.call(this)}function sa(){mxActor.call(this)}function Z(){mxActor.call(this)}function aa(){mxActor.call(this)}function ba(){mxActor.call(this)}function P(){mxActor.call(this)}function W(){mxActor.call(this)}function da(){mxActor.call(this)}function V(){mxActor.call(this)}function ha(){mxActor.call(this)}function Ea(){mxEllipse.call(this)}function Aa(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}
-function Na(){mxRhombus.call(this)}function Oa(){mxEllipse.call(this)}function Pa(){mxEllipse.call(this)}function Ga(){mxEllipse.call(this)}function Ha(){mxEllipse.call(this)}function Ia(){mxActor.call(this)}function ya(){mxActor.call(this)}function za(){mxActor.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;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function wa(){mxConnector.call(this)}
-function Sa(a,b,c,d,e,f,g,k,h,m){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);m?a.fillAndStroke():a.stroke()}}mxUtils.extend(a,mxShape);a.prototype.updateBoundsFromLine=function(){var a=null;if(null!=this.line)for(var b=0;b<this.line.length;b++){var c=this.line[b];null!=c&&(c=new mxRectangle(c.x,c.y,this.strokewidth,this.strokewidth),null==a?a=c:a.add(c))}this.bounds=null!=a?a:new mxRectangle};a.prototype.paintVertexShape=function(a,
+0}function ja(){mxActor.call(this)}function ea(){mxRectangleShape.call(this)}function fa(){mxActor.call(this)}function sa(){mxActor.call(this)}function Y(){mxActor.call(this)}function aa(){mxActor.call(this)}function ba(){mxActor.call(this)}function M(){mxActor.call(this)}function W(){mxActor.call(this)}function da(){mxActor.call(this)}function V(){mxActor.call(this)}function ha(){mxActor.call(this)}function Ea(){mxEllipse.call(this)}function Aa(){mxEllipse.call(this)}function Fa(){mxEllipse.call(this)}
+function Na(){mxRhombus.call(this)}function Oa(){mxEllipse.call(this)}function Pa(){mxEllipse.call(this)}function Ga(){mxEllipse.call(this)}function Ha(){mxEllipse.call(this)}function Ia(){mxActor.call(this)}function ya(){mxActor.call(this)}function za(){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 wa(){mxConnector.call(this)}
+function Sa(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,mxShape);a.prototype.updateBoundsFromLine=function(){var a=null;if(null!=this.line)for(var b=0;b<this.line.length;b++){var c=this.line[b];null!=c&&(c=new mxRectangle(c.x,c.y,this.strokewidth,this.strokewidth),null==a?a=c:a.add(c))}this.bounds=null!=a?a:new mxRectangle};a.prototype.paintVertexShape=function(a,
b,c,d,e){this.paintTableLine(a,this.line,0,0)};a.prototype.paintTableLine=function(a,b,c,d){if(null!=b){var e=null;a.begin();for(var q=0;q<b.length;q++){var f=b[q];null!=f&&(null==e?a.moveTo(f.x+c,f.y+d):null!=e&&a.lineTo(f.x+c,f.y+d));e=f}a.end();a.stroke()}};a.prototype.intersectsRectangle=function(a){var b=!1;if(mxShape.prototype.intersectsRectangle.apply(this,arguments)&&null!=this.line)for(var c=null,d=0;d<this.line.length&&!b;d++){var e=this.line[d];null!=e&&null!=c&&(b=mxUtils.rectangleIntersectsSegment(a,
c,e));c=e}return b};mxCellRenderer.registerShape("tableLine",a);mxUtils.extend(b,mxSwimlane);b.prototype.getLabelBounds=function(a){return 0==this.getTitleSize()?mxShape.prototype.getLabelBounds.apply(this,arguments):mxSwimlane.prototype.getLabelBounds.apply(this,arguments)};b.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)};b.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)}};b.prototype.paintTableForeground=function(b,c,d,e,f){e=this.state.view.graph.getTableLines(this.state.cell,
@@ -3261,10 +3263,10 @@ b,c,d,e){b=Math.min(d,e/Qa);a.translate((d-b)/2,(e-b)/2+b/4);a.moveTo(0,.25*b);a
b),a.lineTo(.5*b,b*xa),a.lineTo(b,.25*b),a.lineTo(b,.75*b),a.lineTo(.5*b,(1-xa)*b),a.lineTo(0,.75*b),a.close());a.end()};mxCellRenderer.registerShape("isoCube",f);mxUtils.extend(h,mxCylinder);h.prototype.redrawPath=function(a,b,c,d,e,f){b=Math.min(e/2,Math.round(e/8)+this.strokewidth-1);if(f&&null!=this.fill||!f&&null==this.fill)a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,b/2),
a.moveTo(0,b),a.curveTo(0,2*b,d,2*b,d,b),f||(a.stroke(),a.begin()),a.translate(0,-b);f||(a.moveTo(0,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),a.close())};h.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",h);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.darkOpacity=0;k.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))));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",k);mxUtils.extend(g,k);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(m,mxShape);m.prototype.isoAngle=15;m.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",m);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(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*
+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",k);mxUtils.extend(g,k);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(l,mxShape);l.prototype.isoAngle=15;l.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",l);mxUtils.extend(m,mxShape);m.prototype.size=
+15;m.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",
+m);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",n);mxUtils.extend(p,mxActor);p.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",p);mxUtils.extend(r,mxCylinder);r.prototype.tabWidth=60;r.prototype.tabHeight=
20;r.prototype.tabPosition="right";r.prototype.arcSize=.1;r.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),A=parseFloat(mxUtils.getValue(this.style,
"arcSize",this.arcSize));g||(A*=Math.min(d,e));A=Math.min(A,.5*d,.5*(e-c));b=Math.max(b,A);b=Math.min(d-A,b);f||(A=0);a.begin();"left"==q?(a.moveTo(Math.max(A,0),c),a.lineTo(Math.max(A,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(A,0),0),a.lineTo(d-Math.max(A,0),c));f?(a.moveTo(0,A+c),a.arcTo(A,A,0,0,1,A,c),a.lineTo(d-A,c),a.arcTo(A,A,0,0,1,d,A+c),a.lineTo(d,e-A),a.arcTo(A,A,0,0,1,d-A,e),a.lineTo(A,e),a.arcTo(A,A,0,0,1,0,e-A)):(a.moveTo(0,c),a.lineTo(d,c),
@@ -3293,20 +3295,20 @@ mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.outline&&(null==
"1"));if(q||null!=this.fill&&this.fill!=mxConstants.NONE||null!=this.stroke&&this.stroke!=mxConstants.NONE)q||null!=this.fill&&this.fill!=mxConstants.NONE||(a.pointerEvents=!1),a.begin(),this.isRounded?("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?q=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(q=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,q=Math.min(d*
q,e*q)),a.moveTo(b+q,c),a.lineTo(b+d-q,c),a.quadTo(b+d,c,b+d,c+q),a.lineTo(b+d,c+e-q),a.quadTo(b+d,c+e,b+d-q,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,c)):(a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,c)),a.close(),a.end(),a.fillAndStroke()}};mxUtils.extend(G,mxRectangleShape);G.prototype.size=.1;G.prototype.fixedSize=!1;G.prototype.isHtmlAllowed=function(){return!1};G.prototype.getLabelBounds=function(a){if(mxUtils.getValue(this.state.style,
mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConstants.DIRECTION_EAST||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};
-G.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,
+G.prototype.paintForeground=function(a,b,c,d,e){var f=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),q=parseFloat(mxUtils.getValue(this.style,"size",this.size)),q=f?Math.max(0,Math.min(d,q)):d*Math.max(0,Math.min(1,q));this.isRounded&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,q=Math.max(q,Math.min(d*f,e*f)));q=Math.round(q);a.begin();a.moveTo(b+q,c);a.lineTo(b+q,c+e);a.moveTo(b+d-q,c);a.lineTo(b+d-q,c+e);a.end();a.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
arguments)};mxCellRenderer.registerShape("process",G);mxCellRenderer.registerShape("process2",G);mxUtils.extend(z,mxRectangleShape);z.prototype.paintBackground=function(a,b,c,d,e){a.setFillColor(mxConstants.NONE);a.rect(b,c,d,e);a.fill()};z.prototype.paintForeground=function(a,b,c,d,e){};mxCellRenderer.registerShape("transparent",z);mxUtils.extend(F,mxHexagon);F.prototype.size=30;F.prototype.position=.5;F.prototype.position2=.5;F.prototype.base=20;F.prototype.getLabelMargins=function(){return new mxRectangle(0,
-0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};F.prototype.isRoundable=function(){return!0};F.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",F);mxUtils.extend(K,mxActor);K.prototype.size=.2;K.prototype.fixedSize=20;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(a,b,c,d,e){b=
+0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};F.prototype.isRoundable=function(){return!0};F.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",F);mxUtils.extend(K,mxActor);K.prototype.size=.2;K.prototype.fixedSize=20;K.prototype.isRoundable=function(){return!0};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))));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",K);
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(N,mxRectangleShape);N.prototype.isHtmlAllowed=function(){return!1};N.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",
-N);var Va=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*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};mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){Va.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
+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 Va=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(a){if(1==this.style["double"]){var b=(2*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};mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){Va.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*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&&(a.setShadow(!1),Va.apply(this,[a,b,c,d,e]))}};mxUtils.extend(J,mxRectangleShape);J.prototype.isHtmlAllowed=function(){return!1};J.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};J.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"],A=this.style["symbol"+f+"Height"],m=this.style["symbol"+f+"Spacing"]||0,D=this.style["symbol"+f+"VSpacing"]||m,l=
-this.style["symbol"+f+"ArcSpacing"];null!=l&&(l*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),m+=l,D+=l);var l=b,C=c,l=g==mxConstants.ALIGN_CENTER?l+(d-h)/2:g==mxConstants.ALIGN_RIGHT?l+(d-h-m):l+m,C=k==mxConstants.ALIGN_MIDDLE?C+(e-A)/2:k==mxConstants.ALIGN_BOTTOM?C+(e-A-D):C+D;a.save();g=new q;g.style=this.style;q.prototype.paintVertexShape.call(g,a,l,C,h,A);a.restore()}f++}while(null!=q)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
-J);mxUtils.extend(R,mxCylinder);R.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",R);mxUtils.extend(Y,mxShape);Y.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",Y);mxUtils.extend(ca,mxShape);ca.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};ca.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",
-ca);mxUtils.extend(O,mxEllipse);O.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",O);mxUtils.extend(S,mxShape);S.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",S);mxUtils.extend(U,mxShape);
+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"],A=this.style["symbol"+f+"Height"],l=this.style["symbol"+f+"Spacing"]||0,D=this.style["symbol"+f+"VSpacing"]||l,m=
+this.style["symbol"+f+"ArcSpacing"];null!=m&&(m*=this.getArcSize(d+this.strokewidth,e+this.strokewidth),l+=m,D+=m);var m=b,C=c,m=g==mxConstants.ALIGN_CENTER?m+(d-h)/2:g==mxConstants.ALIGN_RIGHT?m+(d-h-l):m+l,C=k==mxConstants.ALIGN_MIDDLE?C+(e-A)/2:k==mxConstants.ALIGN_BOTTOM?C+(e-A-D):C+D;a.save();g=new q;g.style=this.style;q.prototype.paintVertexShape.call(g,a,m,C,h,A);a.restore()}f++}while(null!=q)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
+J);mxUtils.extend(R,mxCylinder);R.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",R);mxUtils.extend(Z,mxShape);Z.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",Z);mxUtils.extend(ca,mxShape);ca.prototype.getLabelMargins=function(a){return new mxRectangle(a.width/6,0,0,0)};ca.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",
+ca);mxUtils.extend(P,mxEllipse);P.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",P);mxUtils.extend(S,mxShape);S.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",S);mxUtils.extend(U,mxShape);
U.prototype.getLabelBounds=function(a){return new mxRectangle(a.x,a.y+a.height/8,a.width,7*a.height/8)};U.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()};U.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",U);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,
@@ -3320,13 +3322,13 @@ b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?w.prototype.fixe
k,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g)]):(e=e?Math.max(0,Math.min(.5*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,g+h),new mxPoint(q,g+h),new mxPoint(q+e,g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<q||c.x>q+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,
"fixedSize","0"),f=e?y.prototype.fixedSize:y.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;b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*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,g+h),new mxPoint(q,g+h),new mxPoint(q+e,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,g),new mxPoint(q+k,g),new mxPoint(q+k-e,g+h),new mxPoint(q+e,g+h),new mxPoint(q,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(q+k,g),new mxPoint(q+k,g+h),new mxPoint(q,g+h-e),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(q+k,g+e),new mxPoint(q+k,g+h-e),new mxPoint(q,g+h),new mxPoint(q,
-g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<q||c.x>q+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?K.prototype.fixedSize:K.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,m=a.getCenterX();a=a.getCenterY();b=null!=
+g)]);h=a.getCenterX();a=a.getCenterY();a=new mxPoint(h,a);d&&(c.x<q||c.x>q+k?a.y=c.y:a.x=c.x);return mxUtils.getPerimeterPoint(g,a,c)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(a,b,c,d){var e="0"!=mxUtils.getValue(b.style,"fixedSize","0"),f=e?K.prototype.fixedSize:K.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,l=a.getCenterX();a=a.getCenterY();b=null!=
b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;b==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),g=[new mxPoint(q,g),new mxPoint(q+k-e,g),new mxPoint(q+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(m,g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h),new mxPoint(m,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(m,g+e),new mxPoint(q+k,g),new mxPoint(q+k,g+h-e),new mxPoint(m,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g)]);m=new mxPoint(m,
-a);d&&(c.x<q||c.x>q+k?m.y=c.y:m.x=c.x);return mxUtils.getPerimeterPoint(g,m,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,m=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(m,g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h-e),new mxPoint(m,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g+e),new mxPoint(m,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)]);m=new mxPoint(m,
-a);d&&(c.x<q||c.x>q+k?m.y=c.y:m.x=c.x);return mxUtils.getPerimeterPoint(g,m,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ka,mxShape);ka.prototype.size=10;ka.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",ka);mxUtils.extend(ma,
-mxShape);ma.prototype.size=10;ma.prototype.inset=2;ma.prototype.paintBackground=function(a,b,c,d,e){var f=parseFloat(mxUtils.getValue(this.style,"size",this.size)),g=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;a.translate(b,c);a.begin();a.moveTo(d/2,f+g);a.lineTo(d/2,e);a.end();a.stroke();a.begin();a.moveTo((d-f)/2-g,f/2);a.quadTo((d-f)/2-g,f+g,d/2,f+g);a.quadTo((d+f)/2+g,f+g,(d+f)/2+g,f/2);a.end();a.stroke()};mxCellRenderer.registerShape("requires",ma);mxUtils.extend(oa,
+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(l,g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h),new mxPoint(l,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(l,g+e),new mxPoint(q+k,g),new mxPoint(q+k,g+h-e),new mxPoint(l,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g)]);l=new mxPoint(l,
+a);d&&(c.x<q||c.x>q+k?l.y=c.y:l.x=c.x);return mxUtils.getPerimeterPoint(g,l,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,l=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(l,g),new mxPoint(q+k,g+e),new mxPoint(q+k,g+h-e),new mxPoint(l,g+h),new mxPoint(q,g+h-e),new mxPoint(q,g+e),new mxPoint(l,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)]);l=new mxPoint(l,
+a);d&&(c.x<q||c.x>q+k?l.y=c.y:l.x=c.x);return mxUtils.getPerimeterPoint(g,l,c)};mxStyleRegistry.putValue("hexagonPerimeter2",mxPerimeter.HexagonPerimeter2);mxUtils.extend(ka,mxShape);ka.prototype.size=10;ka.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",ka);mxUtils.extend(ma,
+mxShape);ma.prototype.size=10;ma.prototype.inset=2;ma.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",ma);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(ga,mxCylinder);ga.prototype.jettyWidth=20;ga.prototype.jettyHeight=10;ga.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));c=g/2;var g=c+g/2,q=Math.min(b,e-b),k=Math.min(q+2*b,e-b);f?(a.moveTo(c,q),a.lineTo(g,q),a.lineTo(g,q+b),a.lineTo(c,q+b),a.moveTo(c,
k),a.lineTo(g,k),a.lineTo(g,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,q+b),a.lineTo(0,q+b),a.lineTo(0,q),a.lineTo(c,q),a.close());a.end()};mxCellRenderer.registerShape("module",ga);mxUtils.extend(na,mxCylinder);na.prototype.jettyWidth=32;na.prototype.jettyHeight=12;na.prototype.redrawPath=function(a,b,c,d,e,f){var g=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));b=parseFloat(mxUtils.getValue(this.style,
@@ -3338,12 +3340,12 @@ function(){return mxUtils.getNumber(this.style,"width",this.defaultWidth)+Math.m
0),new mxPoint(d,e)],this.isRounded,c,!0);a.end()};mxCellRenderer.registerShape("manualInput",ja);mxUtils.extend(ea,mxRectangleShape);ea.prototype.dx=20;ea.prototype.dy=20;ea.prototype.isHtmlAllowed=function(){return!1};ea.prototype.paintForeground=function(a,b,c,d,e){mxRectangleShape.prototype.paintForeground.apply(this,arguments);var f=0;if(this.isRounded)var g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.max(f,Math.min(d*g,e*g));g=
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+g,c);a.lineTo(b+g,c+e);a.end();a.stroke()};mxCellRenderer.registerShape("internalStorage",ea);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(sa,mxActor);sa.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",sa);mxUtils.extend(Z,mxActor);Z.prototype.dx=20;Z.prototype.dy=20;Z.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",Z);mxUtils.extend(aa,mxActor);aa.prototype.arrowWidth=.3;aa.prototype.arrowSize=.2;aa.prototype.redrawPath=function(a,b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",
+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",sa);mxUtils.extend(Y,mxActor);Y.prototype.dx=20;Y.prototype.dy=20;Y.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",Y);mxUtils.extend(aa,mxActor);aa.prototype.arrowWidth=.3;aa.prototype.arrowSize=.2;aa.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",aa);mxUtils.extend(ba,mxActor);ba.prototype.redrawPath=function(a,
b,c,d,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",aa.prototype.arrowWidth))));b=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",aa.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",ba);mxUtils.extend(P,mxActor);P.prototype.size=.1;P.prototype.fixedSize=20;P.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",P);mxUtils.extend(W,mxActor);W.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",W);mxUtils.extend(da,mxActor);da.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",da);mxUtils.extend(V,mxActor);V.prototype.size=
+f),new mxPoint(b,e)],this.isRounded,g,!0);a.end()};mxCellRenderer.registerShape("doubleArrow",ba);mxUtils.extend(M,mxActor);M.prototype.size=.1;M.prototype.fixedSize=20;M.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",M);mxUtils.extend(W,mxActor);W.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",W);mxUtils.extend(da,mxActor);da.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",da);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(ha,mxActor);ha.prototype.size=
.375;ha.prototype.isRoundable=function(){return!0};ha.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",ha);mxUtils.extend(Ea,mxEllipse);Ea.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",Ea);mxUtils.extend(Aa,mxEllipse);Aa.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",
@@ -3354,63 +3356,63 @@ mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1")||null!=this.fi
a.lineTo(b,c+e):a.moveTo(b,c+e);(this.outline||"1"==mxUtils.getValue(this.style,"left","1"))&&a.lineTo(b,c);a.end();a.stroke();a.setLineCap("flat")}};mxCellRenderer.registerShape("partialRectangle",Ga);mxUtils.extend(Ha,mxEllipse);Ha.prototype.paintVertexShape=function(a,b,c,d,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);a.setShadow(!1);a.begin();"vertical"==mxUtils.getValue(this.style,"line")?(a.moveTo(b+d/2,c),a.lineTo(b+d/2,c+e)):(a.moveTo(b,c+e/2),a.lineTo(b+d,c+e/2));a.end();
a.stroke()};mxCellRenderer.registerShape("lineEllipse",Ha);mxUtils.extend(Ia,mxActor);Ia.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);a.moveTo(0,0);a.lineTo(d-b,0);a.quadTo(d,0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(0,e);a.close();a.end()};mxCellRenderer.registerShape("delay",Ia);mxUtils.extend(ya,mxActor);ya.prototype.size=.2;ya.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(e,d);var f=Math.max(0,Math.min(b,b*parseFloat(mxUtils.getValue(this.style,"size",this.size))));b=(e-f)/2;c=
b+f;var g=(d-f)/2,f=g+f;a.moveTo(0,b);a.lineTo(g,b);a.lineTo(g,0);a.lineTo(f,0);a.lineTo(f,b);a.lineTo(d,b);a.lineTo(d,c);a.lineTo(f,c);a.lineTo(f,e);a.lineTo(g,e);a.lineTo(g,c);a.lineTo(0,c);a.close();a.end()};mxCellRenderer.registerShape("cross",ya);mxUtils.extend(za,mxActor);za.prototype.size=.25;za.prototype.redrawPath=function(a,b,c,d,e){b=Math.min(d,e/2);c=Math.min(d-b,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);a.moveTo(0,e/2);a.lineTo(c,0);a.lineTo(d-b,0);a.quadTo(d,
-0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(c,e);a.close();a.end()};mxCellRenderer.registerShape("display",za);mxUtils.extend(M,mxActor);M.prototype.cst={RECT2:"mxgraph.basic.rect"};M.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},
+0,d,e/2);a.quadTo(d,e,d-b,e);a.lineTo(c,e);a.close();a.end()};mxCellRenderer.registerShape("display",za);mxUtils.extend(N,mxActor);N.prototype.cst={RECT2:"mxgraph.basic.rect"};N.prototype.customProperties=[{name:"rectStyle",dispName:"Style",type:"enum",defVal:"square",enumList:[{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"size",dispName:"Corner Size",type:"float",defVal:10},
{name:"absoluteCornerSize",dispName:"Abs. Corner Size",type:"bool",defVal:!0},{name:"indent",dispName:"Indent",type:"float",defVal:2},{name:"rectOutline",dispName:"Outline",type:"enum",defVal:"single",enumList:[{val:"single",dispName:"Single"},{val:"double",dispName:"Double"},{val:"frame",dispName:"Frame"}]},{name:"fillColor2",dispName:"Inside Fill Color",type:"color",defVal:"none"},{name:"gradientColor2",dispName:"Inside Gradient Color",type:"color",defVal:"none"},{name:"gradientDirection2",dispName:"Inside Gradient Direction",
type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",dispName:"West"},{val:"north",dispName:"North"},{val:"east",dispName:"East"}]},{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"right",dispName:"Right",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left ",type:"bool",defVal:!0},{name:"topLeftStyle",dispName:"Top Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},
{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
-dispName:"Fold"}]}];M.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);this.strictDrawShape(a,0,0,d,e)};M.prototype.strictDrawShape=function(a,b,c,d,e,f){var g=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),h=f&&f.size?f.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),m=f&&f.rectOutline?f.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=f&&f.indent?f.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),l=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),n=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),p=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,q)),A=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),D=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),C=f&&f.bottom?f.bottom:
+dispName:"Fold"}]}];N.prototype.paintVertexShape=function(a,b,c,d,e){a.translate(b,c);this.strictDrawShape(a,0,0,d,e)};N.prototype.strictDrawShape=function(a,b,c,d,e,f){var g=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),h=f&&f.size?f.size:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),l=f&&f.rectOutline?f.rectOutline:
+mxUtils.getValue(this.style,"rectOutline",this.rectOutline),q=f&&f.indent?f.indent:Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),m=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),n=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),p=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,q)),A=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),D=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),C=f&&f.bottom?f.bottom:
mxUtils.getValue(this.style,"bottom",!0),r=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),t=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),u=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),H=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),v=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),Ca=f&&f.fillColor?f.fillColor:
mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var x=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),w=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),y=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),B=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),z=f&&f.opacity?f.opacity:
-mxUtils.getValue(this.style,"opacity","100"),F=Math.max(0,Math.min(50,h));f=M.prototype;a.setDashed(l);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(x);h=Math.min(.5*e,.5*d,h);k||(h=F*Math.min(d,e)/100);h=Math.min(h,.5*Math.min(d,e));k||(q=Math.min(p*Math.min(d,e)/100));q=Math.min(q,.5*Math.min(d,e)-h);(A||D||C||r)&&"frame"!=m&&(a.begin(),A?f.moveNW(a,b,c,d,e,g,t,h,r):a.moveTo(0,0),A&&f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),D&&f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,
-e,g,H,h,C),C&&f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),r&&f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(w),l=k=z,"none"==w&&(k=0),"none"==y&&(l=0),a.setGradient(w,y,0,0,d,e,B,k,l),a.begin(),A?f.moveNWInner(a,b,c,d,e,g,t,h,q,A,r):a.moveTo(q,0),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),r&&C&&f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),C&&D&&f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,
-b,c,d,e,g,u,h,q,A,D),D&&A&&f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),A&&r&&f.paintNWInner(a,b,c,d,e,g,t,h,q),a.fill(),"none"==Ca&&(a.begin(),f.paintFolds(a,b,c,d,e,g,t,u,H,v,h,A,D,C,r),a.stroke()));A||D||C||!r?A||D||!C||r?!A&&!D&&C&&r?"frame"!=m?(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),"double"==m&&(f.moveNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),f.paintSWInner(a,
-b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.lineNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),a.close(),a.fillAndStroke()):A||!D||C||r?!A&&D&&!C&&r?"frame"!=m?(a.begin(),f.moveSW(a,b,c,d,e,g,t,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),"double"==
-m&&(f.moveNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r)),a.stroke(),a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),"double"==m&&(f.moveSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,t,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.lineNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),a.close(),a.fillAndStroke(),a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,
-g,H,h,C),f.lineSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),a.close(),a.fillAndStroke()):!A&&D&&C&&!r?"frame"!=m?(a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),"double"==m&&(f.moveSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,
-b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.lineSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),a.close(),a.fillAndStroke()):!A&&D&&C&&r?"frame"!=m?(a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),"double"==m&&(f.moveNWInner(a,
+mxUtils.getValue(this.style,"opacity","100"),F=Math.max(0,Math.min(50,h));f=N.prototype;a.setDashed(m);n&&""!=n&&a.setDashPattern(n);a.setStrokeWidth(x);h=Math.min(.5*e,.5*d,h);k||(h=F*Math.min(d,e)/100);h=Math.min(h,.5*Math.min(d,e));k||(q=Math.min(p*Math.min(d,e)/100));q=Math.min(q,.5*Math.min(d,e)-h);(A||D||C||r)&&"frame"!=l&&(a.begin(),A?f.moveNW(a,b,c,d,e,g,t,h,r):a.moveTo(0,0),A&&f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),D&&f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,
+e,g,H,h,C),C&&f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),r&&f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),a.close(),a.fill(),a.setShadow(!1),a.setFillColor(w),m=k=z,"none"==w&&(k=0),"none"==y&&(m=0),a.setGradient(w,y,0,0,d,e,B,k,m),a.begin(),A?f.moveNWInner(a,b,c,d,e,g,t,h,q,A,r):a.moveTo(q,0),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),r&&C&&f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),C&&D&&f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,
+b,c,d,e,g,u,h,q,A,D),D&&A&&f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),A&&r&&f.paintNWInner(a,b,c,d,e,g,t,h,q),a.fill(),"none"==Ca&&(a.begin(),f.paintFolds(a,b,c,d,e,g,t,u,H,v,h,A,D,C,r),a.stroke()));A||D||C||!r?A||D||!C||r?!A&&!D&&C&&r?"frame"!=l?(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),"double"==l&&(f.moveNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),f.paintSWInner(a,
+b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.lineNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),a.close(),a.fillAndStroke()):A||!D||C||r?!A&&D&&!C&&r?"frame"!=l?(a.begin(),f.moveSW(a,b,c,d,e,g,t,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),"double"==
+l&&(f.moveNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r)),a.stroke(),a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),"double"==l&&(f.moveSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,t,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.lineNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),a.close(),a.fillAndStroke(),a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,
+g,H,h,C),f.lineSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),a.close(),a.fillAndStroke()):!A&&D&&C&&!r?"frame"!=l?(a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),"double"==l&&(f.moveSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,
+b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.lineSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),a.close(),a.fillAndStroke()):!A&&D&&C&&r?"frame"!=l?(a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),"double"==l&&(f.moveNWInner(a,
b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.lineNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),f.paintSWInner(a,
-b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),a.close(),a.fillAndStroke()):!A||D||C||r?A&&!D&&!C&&r?"frame"!=m?(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),"double"==m&&(f.moveNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r)),a.stroke()):
-(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.lineNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),a.close(),a.fillAndStroke()):A&&!D&&C&&!r?"frame"!=m?(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),"double"==m&&(f.moveNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A)),a.stroke(),a.begin(),
-f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),"double"==m&&(f.moveSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.lineNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),a.close(),a.fillAndStroke(),a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.lineSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),a.close(),a.fillAndStroke()):
-A&&!D&&C&&r?"frame"!=m?(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),"double"==m&&(f.moveNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,H,
-h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.lineNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),a.close(),a.fillAndStroke()):A&&D&&!C&&!r?"frame"!=m?(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,
-D),f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),"double"==m&&(f.moveSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.lineSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,
-d,e,g,t,h,q,r,A),a.close(),a.fillAndStroke()):A&&D&&!C&&r?"frame"!=m?(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),"double"==m&&(f.moveSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r)),a.stroke()):
-(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.lineSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),a.close(),a.fillAndStroke()):A&&D&&C&&!r?"frame"!=m?(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,
-r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),"double"==m&&(f.moveSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,
-h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.lineSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),a.close(),a.fillAndStroke()):A&&D&&C&&r&&("frame"!=m?(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,h,
-A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),a.close(),"double"==m&&(f.moveSWInner(a,b,c,d,e,g,v,h,q,r),f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,
+b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),a.close(),a.fillAndStroke()):!A||D||C||r?A&&!D&&!C&&r?"frame"!=l?(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),"double"==l&&(f.moveNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r)),a.stroke()):
+(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.lineNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),a.close(),a.fillAndStroke()):A&&!D&&C&&!r?"frame"!=l?(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),"double"==l&&(f.moveNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A)),a.stroke(),a.begin(),
+f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),"double"==l&&(f.moveSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.lineNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),a.close(),a.fillAndStroke(),a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.lineSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),a.close(),a.fillAndStroke()):
+A&&!D&&C&&r?"frame"!=l?(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),"double"==l&&(f.moveNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,H,
+h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.lineNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),a.close(),a.fillAndStroke()):A&&D&&!C&&!r?"frame"!=l?(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,
+D),f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),"double"==l&&(f.moveSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.lineSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,
+d,e,g,t,h,q,r,A),a.close(),a.fillAndStroke()):A&&D&&!C&&r?"frame"!=l?(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),"double"==l&&(f.moveSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r)),a.stroke()):
+(a.begin(),f.moveSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.lineSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),a.close(),a.fillAndStroke()):A&&D&&C&&!r?"frame"!=l?(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,
+r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),"double"==l&&(f.moveSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,
+h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.lineSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),a.close(),a.fillAndStroke()):A&&D&&C&&r&&("frame"!=l?(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,h,
+A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),a.close(),"double"==l&&(f.moveSWInner(a,b,c,d,e,g,v,h,q,r),f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,
e,g,v,h,q,C,r),a.close()),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.paintNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.paintSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.paintSW(a,b,c,d,e,g,v,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),a.close(),f.moveSWInner(a,b,c,d,e,g,v,h,q,r),f.paintSWInner(a,b,c,d,e,g,v,h,q,C),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),f.paintSEInner(a,b,c,d,e,g,H,h,q),f.paintRightInner(a,b,c,d,
-e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),a.close(),a.fillAndStroke())):"frame"!=m?(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),"double"==m&&(f.moveNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.lineNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,
-e,g,t,h,q,r,A),a.close(),a.fillAndStroke()):"frame"!=m?(a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),"double"==m&&(f.moveSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.lineSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),a.close(),a.fillAndStroke()):"frame"!=m?(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),"double"==m&&
-(f.moveSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.lineSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),a.close(),a.fillAndStroke()):"frame"!=m?(a.begin(),f.moveSW(a,b,c,d,e,g,t,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),"double"==m&&(f.moveNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,t,h,C),f.paintLeft(a,
-b,c,d,e,g,t,h,A),f.lineNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),a.close(),a.fillAndStroke());a.begin();f.paintFolds(a,b,c,d,e,g,t,u,H,v,h,A,D,C,r);a.stroke()};M.prototype.moveNW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,0):a.moveTo(0,h)};M.prototype.moveNE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(d,0):a.moveTo(d-h,0)};M.prototype.moveSE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&
-"square"==f||!k?a.moveTo(d,e):a.moveTo(d,e-h)};M.prototype.moveSW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,e):a.moveTo(h,e)};M.prototype.paintNW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,h,0)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(h,0);else a.lineTo(0,0)};M.prototype.paintTop=
-function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(d,0):a.lineTo(d-h,0)};M.prototype.paintNE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d,h)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d,h);else a.lineTo(d,0)};M.prototype.paintRight=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==
-g&&"square"==f||!k?a.lineTo(d,e):a.lineTo(d,e-h)};M.prototype.paintLeft=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,0):a.lineTo(0,h)};M.prototype.paintSE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d-h,e)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-h,e);else a.lineTo(d,
-e)};M.prototype.paintBottom=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,e):a.lineTo(h,e)};M.prototype.paintSW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,0,e-h)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(0,e-h);else a.lineTo(0,e)};M.prototype.paintNWInner=function(a,b,c,
-d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,k,.5*k+h);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,k,k+h);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(k,.5*k+h);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,k+h),a.lineTo(k,k+h)};M.prototype.paintTopInner=function(a,b,c,d,e,f,g,h,k,m,l){m||l?!m&&l?a.lineTo(0,k):m&&!l?a.lineTo(k,0):m?"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&
-"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(h+.5*k,k):a.lineTo(h+k,k):a.lineTo(0,k):a.lineTo(0,0)};M.prototype.paintNEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-h-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-h-k,k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(d-h-.5*k,k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,h+k),a.lineTo(d-h-k,k)};M.prototype.paintRightInner=
-function(a,b,c,d,e,f,g,h,k,m,l){m||l?!m&&l?a.lineTo(d-k,0):m&&!l?a.lineTo(d,k):m?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,h+.5*k):a.lineTo(d-k,h+k):a.lineTo(d-k,0):a.lineTo(d,0)};M.prototype.paintLeftInner=function(a,b,c,d,e,f,g,h,k,m,l){m||l?!m&&l?a.lineTo(k,e):m&&!l?a.lineTo(0,e-k):m?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==
-g&&"snip"==f?a.lineTo(k,e-h-.5*k):a.lineTo(k,e-h-k):a.lineTo(k,e):a.lineTo(0,e)};M.prototype.paintSEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-k,e-h-.5*k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-k,e-h-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(d-k,e-h-.5*k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,e-h-k),a.lineTo(d-k,e-h-k)};M.prototype.paintBottomInner=function(a,b,c,d,
-e,f,g,h,k,m,l){m||l?!m&&l?a.lineTo(d,e-k):m&&!l?a.lineTo(d-k,e):"square"==g||"default"==g&&"square"==f||!m?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-h-.5*k,e-k):a.lineTo(d-h-k,e-k):a.lineTo(d,e)};M.prototype.paintSWInner=function(a,b,c,d,e,f,g,h,k,m){if(!m)a.lineTo(k,e);else if("square"==g||"default"==g&&"square"==f)a.lineTo(k,e-k);else if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,h+.5*k,e-k);else if("invRound"==
-g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,h+k,e-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(h+.5*k,e-k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,e-h-k),a.lineTo(k+h,e-k)};M.prototype.moveSWInner=function(a,b,c,d,e,f,g,h,k,m){m?"square"==g||"default"==g&&"square"==f?a.moveTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,
-e-h-k):a.moveTo(0,e-k)};M.prototype.lineSWInner=function(a,b,c,d,e,f,g,h,k,m){m?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,e-h-k):a.lineTo(0,e-k)};M.prototype.moveSEInner=function(a,b,c,d,e,f,g,h,k,m){m?"square"==g||"default"==g&&"square"==f?a.moveTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==
-f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,e-h-k):a.moveTo(d-k,e)};M.prototype.lineSEInner=function(a,b,c,d,e,f,g,h,k,m){m?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,e-h-k):a.lineTo(d-
-k,e)};M.prototype.moveNEInner=function(a,b,c,d,e,f,g,h,k,m){m?"square"==g||"default"==g&&"square"==f||m?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,h+k):a.moveTo(d,k)};M.prototype.lineNEInner=function(a,b,c,d,e,f,g,h,k,m){m?"square"==g||"default"==g&&"square"==f||m?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==
-g&&"snip"==f?a.lineTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,h+k):a.lineTo(d,k)};M.prototype.moveNWInner=function(a,b,c,d,e,f,g,h,k,m,l){m||l?!m&&l?a.moveTo(k,0):m&&!l?a.moveTo(0,k):"square"==g||"default"==g&&"square"==f?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,h+k):a.moveTo(0,
-0)};M.prototype.lineNWInner=function(a,b,c,d,e,f,g,h,k,m,l){m||l?!m&&l?a.lineTo(k,0):m&&!l?a.lineTo(0,k):"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,h+k):a.lineTo(0,0)};M.prototype.paintFolds=function(a,b,c,d,e,f,g,h,k,m,l,n,p,r,t){if("fold"==f||"fold"==g||"fold"==h||"fold"==k||"fold"==m)("fold"==g||"default"==
-g&&"fold"==f)&&n&&t&&(a.moveTo(0,l),a.lineTo(l,l),a.lineTo(l,0)),("fold"==h||"default"==h&&"fold"==f)&&n&&p&&(a.moveTo(d-l,0),a.lineTo(d-l,l),a.lineTo(d,l)),("fold"==k||"default"==k&&"fold"==f)&&r&&p&&(a.moveTo(d-l,e),a.lineTo(d-l,e-l),a.lineTo(d,e-l)),("fold"==m||"default"==m&&"fold"==f)&&r&&t&&(a.moveTo(0,e-l),a.lineTo(l,e-l),a.lineTo(l,e))};mxCellRenderer.registerShape(M.prototype.cst.RECT2,M);M.prototype.constraints=null;mxUtils.extend(wa,mxConnector);wa.prototype.origPaintEdgeShape=wa.prototype.paintEdgeShape;
+e,g,u,h,q,A,D),f.paintNEInner(a,b,c,d,e,g,u,h,q),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A),f.paintNWInner(a,b,c,d,e,g,t,h,q),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),a.close(),a.fillAndStroke())):"frame"!=l?(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),"double"==l&&(f.moveNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,e,g,t,h,q,r,A)),a.stroke()):(a.begin(),f.moveNW(a,b,c,d,e,g,t,h,r),f.paintTop(a,b,c,d,e,g,u,h,D),f.lineNEInner(a,b,c,d,e,g,u,h,q,D),f.paintTopInner(a,b,c,d,
+e,g,t,h,q,r,A),a.close(),a.fillAndStroke()):"frame"!=l?(a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),"double"==l&&(f.moveSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D)),a.stroke()):(a.begin(),f.moveNE(a,b,c,d,e,g,u,h,A),f.paintRight(a,b,c,d,e,g,H,h,C),f.lineSEInner(a,b,c,d,e,g,H,h,q,C),f.paintRightInner(a,b,c,d,e,g,u,h,q,A,D),a.close(),a.fillAndStroke()):"frame"!=l?(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),"double"==l&&
+(f.moveSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C)),a.stroke()):(a.begin(),f.moveSE(a,b,c,d,e,g,H,h,D),f.paintBottom(a,b,c,d,e,g,v,h,r),f.lineSWInner(a,b,c,d,e,g,v,h,q,r),f.paintBottomInner(a,b,c,d,e,g,H,h,q,D,C),a.close(),a.fillAndStroke()):"frame"!=l?(a.begin(),f.moveSW(a,b,c,d,e,g,t,h,C),f.paintLeft(a,b,c,d,e,g,t,h,A),"double"==l&&(f.moveNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r)),a.stroke()):(a.begin(),f.moveSW(a,b,c,d,e,g,t,h,C),f.paintLeft(a,
+b,c,d,e,g,t,h,A),f.lineNWInner(a,b,c,d,e,g,t,h,q,A,r),f.paintLeftInner(a,b,c,d,e,g,v,h,q,C,r),a.close(),a.fillAndStroke());a.begin();f.paintFolds(a,b,c,d,e,g,t,u,H,v,h,A,D,C,r);a.stroke()};N.prototype.moveNW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,0):a.moveTo(0,h)};N.prototype.moveNE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(d,0):a.moveTo(d-h,0)};N.prototype.moveSE=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&
+"square"==f||!k?a.moveTo(d,e):a.moveTo(d,e-h)};N.prototype.moveSW=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.moveTo(0,e):a.moveTo(h,e)};N.prototype.paintNW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,h,0)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(h,0);else a.lineTo(0,0)};N.prototype.paintTop=
+function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(d,0):a.lineTo(d-h,0)};N.prototype.paintNE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d,h)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d,h);else a.lineTo(d,0)};N.prototype.paintRight=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==
+g&&"square"==f||!k?a.lineTo(d,e):a.lineTo(d,e-h)};N.prototype.paintLeft=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,0):a.lineTo(0,h)};N.prototype.paintSE=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,d-h,e)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-h,e);else a.lineTo(d,
+e)};N.prototype.paintBottom=function(a,b,c,d,e,f,g,h,k){"square"==g||"default"==g&&"square"==f||!k?a.lineTo(0,e):a.lineTo(h,e)};N.prototype.paintSW=function(a,b,c,d,e,f,g,h,k){if(k)if("rounded"==g||"default"==g&&"rounded"==f||"invRound"==g||"default"==g&&"invRound"==f){b=0;if("rounded"==g||"default"==g&&"rounded"==f)b=1;a.arcTo(h,h,0,0,b,0,e-h)}else("snip"==g||"default"==g&&"snip"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(0,e-h);else a.lineTo(0,e)};N.prototype.paintNWInner=function(a,b,c,
+d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,k,.5*k+h);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,k,k+h);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(k,.5*k+h);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,k+h),a.lineTo(k,k+h)};N.prototype.paintTopInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(0,k):l&&!m?a.lineTo(k,0):l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&
+"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(h+.5*k,k):a.lineTo(h+k,k):a.lineTo(0,k):a.lineTo(0,0)};N.prototype.paintNEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-h-.5*k,k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-h-k,k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(d-h-.5*k,k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,h+k),a.lineTo(d-h-k,k)};N.prototype.paintRightInner=
+function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(d-k,0):l&&!m?a.lineTo(d,k):l?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,h+.5*k):a.lineTo(d-k,h+k):a.lineTo(d-k,0):a.lineTo(d,0)};N.prototype.paintLeftInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,e):l&&!m?a.lineTo(0,e-k):l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==
+g&&"snip"==f?a.lineTo(k,e-h-.5*k):a.lineTo(k,e-h-k):a.lineTo(k,e):a.lineTo(0,e)};N.prototype.paintSEInner=function(a,b,c,d,e,f,g,h,k){if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,d-k,e-h-.5*k);else if("invRound"==g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,d-k,e-h-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(d-k,e-h-.5*k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(d-h-k,e-h-k),a.lineTo(d-k,e-h-k)};N.prototype.paintBottomInner=function(a,b,c,d,
+e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(d,e-k):l&&!m?a.lineTo(d-k,e):"square"==g||"default"==g&&"square"==f||!l?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-h-.5*k,e-k):a.lineTo(d-h-k,e-k):a.lineTo(d,e)};N.prototype.paintSWInner=function(a,b,c,d,e,f,g,h,k,l){if(!l)a.lineTo(k,e);else if("square"==g||"default"==g&&"square"==f)a.lineTo(k,e-k);else if("rounded"==g||"default"==g&&"rounded"==f)a.arcTo(h-.5*k,h-.5*k,0,0,0,h+.5*k,e-k);else if("invRound"==
+g||"default"==g&&"invRound"==f)a.arcTo(h+k,h+k,0,0,1,h+k,e-k);else if("snip"==g||"default"==g&&"snip"==f)a.lineTo(h+.5*k,e-k);else if("fold"==g||"default"==g&&"fold"==f)a.lineTo(k+h,e-h-k),a.lineTo(k+h,e-k)};N.prototype.moveSWInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.moveTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,
+e-h-k):a.moveTo(0,e-k)};N.prototype.lineSWInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.lineTo(k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,e-h-k):a.lineTo(0,e-k)};N.prototype.moveSEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.moveTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==
+f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,e-h-k):a.moveTo(d-k,e)};N.prototype.lineSEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f?a.lineTo(d-k,e-k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(d-k,e-h-.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,e-h-k):a.lineTo(d-
+k,e)};N.prototype.moveNEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.moveTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(d-k,h+k):a.moveTo(d,k)};N.prototype.lineNEInner=function(a,b,c,d,e,f,g,h,k,l){l?"square"==g||"default"==g&&"square"==f||l?a.lineTo(d-k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==
+g&&"snip"==f?a.lineTo(d-k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(d-k,h+k):a.lineTo(d,k)};N.prototype.moveNWInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.moveTo(k,0):l&&!m?a.moveTo(0,k):"square"==g||"default"==g&&"square"==f?a.moveTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.moveTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.moveTo(k,h+k):a.moveTo(0,
+0)};N.prototype.lineNWInner=function(a,b,c,d,e,f,g,h,k,l,m){l||m?!l&&m?a.lineTo(k,0):l&&!m?a.lineTo(0,k):"square"==g||"default"==g&&"square"==f?a.lineTo(k,k):"rounded"==g||"default"==g&&"rounded"==f||"snip"==g||"default"==g&&"snip"==f?a.lineTo(k,h+.5*k):("invRound"==g||"default"==g&&"invRound"==f||"fold"==g||"default"==g&&"fold"==f)&&a.lineTo(k,h+k):a.lineTo(0,0)};N.prototype.paintFolds=function(a,b,c,d,e,f,g,h,k,l,m,n,p,r,t){if("fold"==f||"fold"==g||"fold"==h||"fold"==k||"fold"==l)("fold"==g||"default"==
+g&&"fold"==f)&&n&&t&&(a.moveTo(0,m),a.lineTo(m,m),a.lineTo(m,0)),("fold"==h||"default"==h&&"fold"==f)&&n&&p&&(a.moveTo(d-m,0),a.lineTo(d-m,m),a.lineTo(d,m)),("fold"==k||"default"==k&&"fold"==f)&&r&&p&&(a.moveTo(d-m,e),a.lineTo(d-m,e-m),a.lineTo(d,e-m)),("fold"==l||"default"==l&&"fold"==f)&&r&&t&&(a.moveTo(0,e-m),a.lineTo(m,e-m),a.lineTo(m,e))};mxCellRenderer.registerShape(N.prototype.cst.RECT2,N);N.prototype.constraints=null;mxUtils.extend(wa,mxConnector);wa.prototype.origPaintEdgeShape=wa.prototype.paintEdgeShape;
wa.prototype.paintEdgeShape=function(a,b,c){for(var d=[],e=0;e<b.length;e++)d.push(mxUtils.clone(b[e]));var e=a.state.dashed,f=a.state.fixDash;wa.prototype.origPaintEdgeShape.apply(this,[a,d,c]);3<=a.state.strokeWidth&&(d=mxUtils.getValue(this.style,"fillColor",null),null!=d&&(a.setStrokeColor(d),a.setStrokeWidth(a.state.strokeWidth-2),a.setDashed(e,f),wa.prototype.origPaintEdgeShape.apply(this,[a,b,c])))};mxCellRenderer.registerShape("filledEdge",wa);"undefined"!==typeof StyleFormatPanel&&function(){var a=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var b=this.editorUi.getSelectionState(),c=a.apply(this,arguments);"umlFrame"==b.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c}}();mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,m){var l=e*(g+k+1),q=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-l/2-q/2,d.y-q/2+l/2);a.lineTo(d.x+q/2-3*l/2,d.y-3*q/2-l/2);a.stroke()}});mxMarker.addMarker("box",
-function(a,b,c,d,e,f,g,h,k,m){var l=e*(g+k+1),q=f*(g+k+1),n=d.x+l/2,p=d.y+q/2;d.x-=l;d.y-=q;return function(){a.begin();a.moveTo(n-l/2-q/2,p-q/2+l/2);a.lineTo(n-l/2+q/2,p-q/2-l/2);a.lineTo(n+q/2-3*l/2,p-3*q/2-l/2);a.lineTo(n-q/2-3*l/2,p-3*q/2+l/2);a.close();m?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,m){var l=e*(g+k+1),q=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-l/2-q/2,d.y-q/2+l/2);a.lineTo(d.x+q/2-3*l/2,d.y-3*q/2-l/2);a.moveTo(d.x-l/2+q/2,d.y-
-q/2-l/2);a.lineTo(d.x-q/2-3*l/2,d.y-3*q/2+l/2);a.stroke()}});mxMarker.addMarker("circle",Sa);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,m){var l=d.clone(),q=Sa.apply(this,arguments),n=e*(g+2*k),p=f*(g+2*k);return function(){q.apply(this,arguments);a.begin();a.moveTo(l.x-e*k,l.y-f*k);a.lineTo(l.x-2*n+e*k,l.y-2*p+f*k);a.moveTo(l.x-n-p+f*k,l.y-p+n-e*k);a.lineTo(l.x+p-n-f*k,l.y-p-n+e*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,b,c,d,e,f,g,h,k,m){var l=e*(g+k+1),q=f*(g+
-k+1),n=d.clone();d.x-=l;d.y-=q;return function(){a.begin();a.moveTo(n.x-q,n.y+l);a.quadTo(d.x-q,d.y+l,d.x,d.y);a.quadTo(d.x+q,d.y-l,n.x+q,n.y-l);a.stroke()}});mxMarker.addMarker("async",function(a,b,c,d,e,f,g,h,k,m){b=e*k*1.118;c=f*k*1.118;e*=g+k;f*=g+k;var l=d.clone();l.x-=b;l.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(l.x,l.y);h?a.lineTo(l.x-e-f/2,l.y-f+e/2):a.lineTo(l.x+f/2-e,l.y-f-e/2);a.lineTo(l.x-e,l.y-f);a.close();m?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("openAsync",
-function(a){a=null!=a?a:2;return function(b,c,d,e,f,g,h,k,m,l){f*=h+m;g*=h+m;var q=e.clone();return function(){b.begin();b.moveTo(q.x,q.y);k?b.lineTo(q.x-f-g/a,q.y-g+f/a):b.lineTo(q.x+g/a-f,q.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Wa=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 T(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,m=Math.sqrt(f*f+k*k),h=d.call(this,m,f/m,k/m,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,m=c?g[0]:g[h],g=c?g[1]:g[h-1],h=g.x-m.x,l=g.y-m.y,q=Math.sqrt(h*h+l*l);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,
-q,h/q,l/q,m,g,d,f)})},va=function(a){return function(b){return[T(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",aa.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",aa.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,
+StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var b=this.editorUi.getSelectionState(),c=a.apply(this,arguments);"umlFrame"==b.style.shape&&c.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return c}}();mxMarker.addMarker("dash",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),q=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-q/2,d.y-q/2+m/2);a.lineTo(d.x+q/2-3*m/2,d.y-3*q/2-m/2);a.stroke()}});mxMarker.addMarker("box",
+function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),q=f*(g+k+1),n=d.x+m/2,p=d.y+q/2;d.x-=m;d.y-=q;return function(){a.begin();a.moveTo(n-m/2-q/2,p-q/2+m/2);a.lineTo(n-m/2+q/2,p-q/2-m/2);a.lineTo(n+q/2-3*m/2,p-3*q/2-m/2);a.lineTo(n-q/2-3*m/2,p-3*q/2+m/2);a.close();l?a.fillAndStroke():a.stroke()}});mxMarker.addMarker("cross",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),q=f*(g+k+1);return function(){a.begin();a.moveTo(d.x-m/2-q/2,d.y-q/2+m/2);a.lineTo(d.x+q/2-3*m/2,d.y-3*q/2-m/2);a.moveTo(d.x-m/2+q/2,d.y-
+q/2-m/2);a.lineTo(d.x-q/2-3*m/2,d.y-3*q/2+m/2);a.stroke()}});mxMarker.addMarker("circle",Sa);mxMarker.addMarker("circlePlus",function(a,b,c,d,e,f,g,h,k,l){var m=d.clone(),q=Sa.apply(this,arguments),n=e*(g+2*k),p=f*(g+2*k);return function(){q.apply(this,arguments);a.begin();a.moveTo(m.x-e*k,m.y-f*k);a.lineTo(m.x-2*n+e*k,m.y-2*p+f*k);a.moveTo(m.x-n-p+f*k,m.y-p+n-e*k);a.lineTo(m.x+p-n-f*k,m.y-p-n+e*k);a.stroke()}});mxMarker.addMarker("halfCircle",function(a,b,c,d,e,f,g,h,k,l){var m=e*(g+k+1),q=f*(g+
+k+1),n=d.clone();d.x-=m;d.y-=q;return function(){a.begin();a.moveTo(n.x-q,n.y+m);a.quadTo(d.x-q,d.y+m,d.x,d.y);a.quadTo(d.x+q,d.y-m,n.x+q,n.y-m);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 m=d.clone();m.x-=b;m.y-=c;d.x+=1*-e-b;d.y+=1*-f-c;return function(){a.begin();a.moveTo(m.x,m.y);h?a.lineTo(m.x-e-f/2,m.y-f+e/2):a.lineTo(m.x+f/2-e,m.y-f-e/2);a.lineTo(m.x-e,m.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,m){f*=h+l;g*=h+l;var q=e.clone();return function(){b.begin();b.moveTo(q.x,q.y);k?b.lineTo(q.x-f-g/a,q.y-g+f/a):b.lineTo(q.x+g/a-f,q.y-g-f/a);b.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var Wa=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 T(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,m=g.y-l.y,q=Math.sqrt(h*h+m*m);d.x=(d.x+b.x)*k;d.y=(d.y+b.y)*k;e.call(this,
+q,h/q,m/q,l,g,d,f)})},va=function(a){return function(b){return[T(b,["arrowWidth","arrowSize"],function(b){var c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",aa.prototype.arrowWidth))),d=Math.max(0,Math.min(a,mxUtils.getValue(this.state.style,"arrowSize",aa.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))})]}},Ta=function(a){return function(b){return[T(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)]}},Ra=function(a,b,c){return function(d){var e=[T(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}},Ja=function(a,b,c,d,e){c=null!=c?c:.5;return function(f){var g=[T(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}},Ua=function(a,b,c){a=null!=a?a:.5;return function(d){var e=[T(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,
@@ -3419,97 +3421,97 @@ d*(c?1:b.width))),b.getCenterY())},function(a,b,d){a=null!=e&&"0"!=mxUtils.getVa
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))))})},T=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},Ka={link:function(a){return[Wa(a,!0,10),Wa(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],!0,function(b,
-c,d,e,f){b=(a.shape.getStartArrowWidth()-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.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;mxEvent.isControlDown(k.getEvent())&&(a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth);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]),Math.abs(parseFloat(a.style.startWidth)-
-parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Da(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-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.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(T(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:Ba(),ext:Ba(),rectangle:Ba(),
-triangle:Ba(),rhombus:Ba(),umlLifeline:function(a){return[T(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[T(a,["width","height"],function(a){var b=Math.max(X.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",X.prototype.width))),
-c=Math.max(1.5*X.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",X.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(X.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*X.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},process:function(a){var b=[T(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,
-"size",G.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[T(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",ya.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[T(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",k.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[T(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=[T(a,["size"],function(a){var b=
-Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",ja.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[T(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,"size",b?P.prototype.fixedSize:
-P.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=[T(a,["size","position"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",F.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"position",F.prototype.position)));mxUtils.getValue(this.state.style,"base",F.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",F.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),T(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",F.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),T(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",F.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",F.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",F.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",F.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=[T(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)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},module:function(a){return[T(a,["jettyWidth","jettyHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ga.prototype.jettyWidth))),c=Math.max(0,Math.min(a.height,
-mxUtils.getValue(this.state.style,"jettyHeight",ga.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[T(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[T(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"dx",Z.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",Z.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:va(1),doubleArrow:va(.5),folder:function(a){return[T(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"tabWidth",r.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",r.prototype.tabHeight)));mxUtils.getValue(this.state.style,
-"tabPosition",r.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",r.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[T(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",x.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[T(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.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[T(a,
-["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",m.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:Ta(l.prototype.size),cylinder3:Ta(n.prototype.size),offPageConnector:function(a){return[T(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ha.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:Ja(K.prototype.size,!0,null,!0,K.prototype.fixedSize),hexagon:Ja(L.prototype.size,!0,.5,!0,L.prototype.fixedSize),curlyBracket:Ja(E.prototype.size,!1),display:Ja(za.prototype.size,!1),cube:Ra(1,
-c.prototype.size,!1),card:Ra(.5,v.prototype.size,!0),loopLimit:Ra(.5,V.prototype.size,!0),trapezoid:Ua(.5,y.prototype.size,y.prototype.fixedSize),parallelogram:Ua(1,w.prototype.size,w.prototype.fixedSize)};Graph.createHandle=T;Graph.handleFactory=Ka;var ab=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var a=ab.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=Ka[b];null==b&&null!=this.state.shape&&this.state.shape.isRoundable()&&(b=Ka[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=Ka[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var La=new mxPoint(1,0),Ma=new mxPoint(1,0),va=mxUtils.toRadians(-30),La=mxUtils.getRotatedPoint(La,Math.cos(va),Math.sin(va)),va=mxUtils.toRadians(-150),Ma=mxUtils.getRotatedPoint(Ma,Math.cos(va),Math.sin(va));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=La.x,m=La.y,l=Ma.x,n=Ma.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-l*d)/(k*n-m*l);a=(m*a-k*d)/(m*l-k*n);q?(c&&(p=new mxPoint(p.x+k*b,p.y+m*b),e.push(p)),p=new mxPoint(p.x+l*a,p.y+n*a)):(c&&(p=new mxPoint(p.x+l*a,p.y+n*a),e.push(p)),p=new mxPoint(p.x+k*b,p.y+m*b));e.push(p)};var p=h;null==
-d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var bb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return bb.apply(this,arguments)};d.prototype.constraints=[];f.prototype.getConstraints=function(a,b,c){a=[];var d=Math.tan(mxUtils.toRadians(30)),e=(.5-
-d)/2,d=Math.min(b,c/(.5+d));b=(b-d)/2;c=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.5*d,c+d*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+d,c+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+d,c+.75*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.5*d,c+(1-e)*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c+.75*d));return a};m.prototype.getConstraints=
-function(a,b,c){a=[];var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,d=Math.min(b*Math.tan(d),.5*c);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));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,c-d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));return a};F.prototype.getConstraints=function(a,b,c){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,.5*(c-d)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-b,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));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)));b>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),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(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(0,1),!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(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];Ga.prototype.constraints=mxRectangleShape.prototype.constraints;
-mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;N.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;k.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(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));b>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};v.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};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};r.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};ea.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=mxRectangleShape.prototype.constraints;Ea.prototype.constraints=mxEllipse.prototype.constraints;Aa.prototype.constraints=mxEllipse.prototype.constraints;
-Fa.prototype.constraints=mxEllipse.prototype.constraints;Ha.prototype.constraints=mxEllipse.prototype.constraints;ja.prototype.constraints=mxRectangleShape.prototype.constraints;Ia.prototype.constraints=mxRectangleShape.prototype.constraints;za.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};ga.prototype.getConstraints=function(a,b,c){b=parseFloat(mxUtils.getValue(a,
-"jettyWidth",ga.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ga.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;ha.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)];Y.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)];na.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,
-.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,
-.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];p.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,
-.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];t.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)];K.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)];ka.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;y.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,
-0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;Z.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};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};sa.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)];aa.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};ba.prototype.getConstraints=function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",aa.prototype.arrowWidth)))),e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",aa.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};ya.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;W.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)];da.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()}
+3)/100/a.view.scale;a.style.width=Math.round(2*c)/a.view.scale;if(mxEvent.isShiftDown(k.getEvent())||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],
+!0,function(b,c,d,e,f){b=(a.shape.getStartArrowWidth()-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.startWidth=Math.max(0,Math.round(2*c)-a.shape.getEdgeWidth())/a.view.scale;if(mxEvent.isShiftDown(k.getEvent())||mxEvent.isControlDown(k.getEvent()))a.style[mxConstants.STYLE_ENDSIZE]=a.style[mxConstants.STYLE_STARTSIZE],a.style.endWidth=a.style.startWidth;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]),
+Math.abs(parseFloat(a.style.startWidth)-parseFloat(a.style.endWidth))<b&&(a.style.startWidth=a.style.endWidth))})));mxUtils.getValue(a.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(c.push(Da(a,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(b,c,d,e,f){b=(a.shape.getEdgeWidth()-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.width=Math.round(2*c)/a.view.scale;if(mxEvent.isShiftDown(k.getEvent())||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;if(mxEvent.isShiftDown(k.getEvent())||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(T(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){var c=a.view.graph;if(!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())&&(c.isTableRow(a.cell)||c.isTableCell(a.cell))){b=c.getSwimlaneDirection(a.style);for(var d=c.model.getParent(a.cell),d=c.model.getChildCells(d,!0),e=[],f=0;f<d.length;f++)d[f]!=a.cell&&c.isSwimlane(d[f])&&c.getSwimlaneDirection(c.getCurrentCellStyle(d[f]))==
+b&&e.push(d[f]);c.setCellStyles(mxConstants.STYLE_STARTSIZE,a.style[mxConstants.STYLE_STARTSIZE],e)}}));return b},label:Ba(),ext:Ba(),rectangle:Ba(),triangle:Ba(),rhombus:Ba(),umlLifeline:function(a){return[T(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[T(a,
+["width","height"],function(a){var b=Math.max(X.prototype.corner,Math.min(a.width,mxUtils.getValue(this.state.style,"width",X.prototype.width))),c=Math.max(1.5*X.prototype.corner,Math.min(a.height,mxUtils.getValue(this.state.style,"height",X.prototype.height)));return new mxPoint(a.x+b,a.y+c)},function(a,b){this.state.style.width=Math.round(Math.max(X.prototype.corner,Math.min(a.width,b.x-a.x)));this.state.style.height=Math.round(Math.max(1.5*X.prototype.corner,Math.min(a.height,b.y-a.y)))},!1)]},
+process:function(a){var b=[T(a,["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,"size",G.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[T(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",ya.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[T(a,["size"],function(a){var b=Math.max(0,Math.min(a.width,
+Math.min(a.height,parseFloat(mxUtils.getValue(this.state.style,"size",k.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[T(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=[T(a,["size"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",ja.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[T(a,
+["size"],function(a){var b="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),c=parseFloat(mxUtils.getValue(this.state.style,"size",b?M.prototype.fixedSize:M.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=[T(a,["size","position"],function(a){var b=
+Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",F.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",F.prototype.position)));mxUtils.getValue(this.state.style,"base",F.prototype.base);return new mxPoint(a.x+c*a.width,a.y+a.height-b)},function(a,b){mxUtils.getValue(this.state.style,"base",F.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),T(a,["position2"],function(a){var b=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",F.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),T(a,["base"],function(a){var b=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"size",F.prototype.size))),c=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",
+F.prototype.position))),d=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"base",F.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",F.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=[T(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)];mxUtils.getValue(a.style,mxConstants.STYLE_ROUNDED,!1)&&b.push(ta(a));return b},module:function(a){return[T(a,
+["jettyWidth","jettyHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,"jettyWidth",ga.prototype.jettyWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"jettyHeight",ga.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[T(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[T(a,["dx","dy"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,
+"dx",Y.prototype.dx))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"dy",Y.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:va(1),doubleArrow:va(.5),folder:function(a){return[T(a,["tabWidth","tabHeight"],function(a){var b=Math.max(0,Math.min(a.width,mxUtils.getValue(this.state.style,
+"tabWidth",r.prototype.tabWidth))),c=Math.max(0,Math.min(a.height,mxUtils.getValue(this.state.style,"tabHeight",r.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",r.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",r.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[T(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",x.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[T(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.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[T(a,["isoAngle"],function(a){var b=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",l.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:Ta(m.prototype.size),cylinder3:Ta(n.prototype.size),
+offPageConnector:function(a){return[T(a,["size"],function(a){var b=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ha.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:Ja(K.prototype.size,!0,null,
+!0,K.prototype.fixedSize),hexagon:Ja(L.prototype.size,!0,.5,!0,L.prototype.fixedSize),curlyBracket:Ja(E.prototype.size,!1),display:Ja(za.prototype.size,!1),cube:Ra(1,c.prototype.size,!1),card:Ra(.5,v.prototype.size,!0),loopLimit:Ra(.5,V.prototype.size,!0),trapezoid:Ua(.5,y.prototype.size,y.prototype.fixedSize),parallelogram:Ua(1,w.prototype.size,w.prototype.fixedSize)};Graph.createHandle=T;Graph.handleFactory=Ka;var ab=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=
+function(){var a=ab.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=Ka[b];null==b&&null!=this.state.shape&&this.state.shape.isRoundable()&&(b=Ka[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=Ka[a];return null!=a?a(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var La=new mxPoint(1,0),Ma=new mxPoint(1,0),va=mxUtils.toRadians(-30),La=mxUtils.getRotatedPoint(La,Math.cos(va),Math.sin(va)),va=mxUtils.toRadians(-150),Ma=mxUtils.getRotatedPoint(Ma,Math.cos(va),Math.sin(va));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=La.x,l=La.y,m=Ma.x,n=Ma.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==d&&(d=new mxPoint(h.x+(g.x-h.x)/2,h.y+(g.y-h.y)/2));a(d.x,d.y,!0);a(g.x,g.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var bb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(a,b){if(b==mxEdgeStyle.IsometricConnector){var c=new mxElbowEdgeHandler(a);c.snapToTerminals=!1;return c}return bb.apply(this,
+arguments)};d.prototype.constraints=[];f.prototype.getConstraints=function(a,b,c){a=[];var d=Math.tan(mxUtils.toRadians(30)),e=(.5-d)/2,d=Math.min(b,c/(.5+d));b=(b-d)/2;c=(c-d)/2;a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+.5*d,c+d*e));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+d,c+.25*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b+d,c+.75*d));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,b+.5*d,c+(1-e)*d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c+.75*d));return a};l.prototype.getConstraints=function(a,b,c){a=[];var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,d=Math.min(b*Math.tan(d),.5*c);a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));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,c-d));a.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));return a};F.prototype.getConstraints=function(a,b,c){a=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var d=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,
+"position",this.position));var e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));a.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));a.push(new mxConnectionConstraint(new mxPoint(1,0),!1));a.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,b,.5*(c-d)));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,b,c-d));a.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));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)));b>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),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(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(0,1),!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(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,
+.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];Ga.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;O.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;k.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(.5,
+1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,1),!1));a.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b>=2*d&&a.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return a};v.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};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};r.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};ea.prototype.constraints=mxRectangleShape.prototype.constraints;M.prototype.constraints=
+mxRectangleShape.prototype.constraints;Ea.prototype.constraints=mxEllipse.prototype.constraints;Aa.prototype.constraints=mxEllipse.prototype.constraints;Fa.prototype.constraints=mxEllipse.prototype.constraints;Ha.prototype.constraints=mxEllipse.prototype.constraints;ja.prototype.constraints=mxRectangleShape.prototype.constraints;Ia.prototype.constraints=mxRectangleShape.prototype.constraints;za.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};ga.prototype.getConstraints=function(a,b,c){b=parseFloat(mxUtils.getValue(a,"jettyWidth",ga.prototype.jettyWidth))/2;a=parseFloat(mxUtils.getValue(a,"jettyHeight",ga.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;ha.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)];Z.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)];na.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,
+0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,
+0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];p.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
+0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];t.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)];K.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)];ka.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;y.prototype.constraints=mxRectangleShape.prototype.constraints;x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,
+0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;Y.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};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};sa.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)];aa.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};ba.prototype.getConstraints=function(a,b,c){a=[];var d=c*Math.max(0,Math.min(1,
+parseFloat(mxUtils.getValue(this.style,"arrowWidth",aa.prototype.arrowWidth)))),e=b*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",aa.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};ya.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;W.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)];da.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){d.escape();a=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),a);null!=a&&d.setSelectionCells(a)}function b(){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()}}}var c=this.editorUi,e=c.editor,d=e.graph,f=function(){return Action.prototype.isEnabled.apply(this,arguments)&&d.isEnabled()};this.addAction("new...",function(){d.openLink(c.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";c.openFile()});this.addAction("smartFit",function(){d.popupMenuHandler.hideMenu();var a=d.view.scale,b=d.view.translate.x,e=d.view.translate.y;c.actions.get("resetView").funct();1E-5>Math.abs(a-d.view.scale)&&b==d.view.translate.x&&e==d.view.translate.y&&c.actions.get(d.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){d.isEnabled()&&(d.isSelectionEmpty()?c.actions.get("smartFit").funct():
d.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);e.graph.setSelectionCells(e.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,340,!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,240,!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(d,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&&d.removeCells(a,!1)}catch(m){}null==a&&mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{c.copyXml()}catch(g){}try{mxClipboard.copy(d)}catch(g){c.handleError(g)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=!1;try{Editor.enableNativeCipboard&&(c.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{c.pasteXml(a,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),
-a=!0)}catch(m){}a||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){function b(a){if(null!=a){for(var b=!0,c=0;c<a.length&&b;c++)b=b&&d.model.isEdge(a[c]);var e=d.view.translate,c=d.view.scale,f=e.x,g=e.y,e=null;if(1==a.length&&b){var h=d.getCellGeometry(a[0]);null!=h&&(e=h.getTerminalPoint(!0))}e=null!=e?e:d.getBoundingBoxFromGeometry(a,b);null!=e&&(b=Math.round(d.snap(d.popupMenuHandler.triggerX/c-f)),c=Math.round(d.snap(d.popupMenuHandler.triggerY/
+null!=a&&d.removeCells(a,!1)}catch(l){}null==a&&mxClipboard.cut(d)},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{c.copyXml()}catch(g){}try{mxClipboard.copy(d)}catch(g){c.handleError(g)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var a=!1;try{Editor.enableNativeCipboard&&(c.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{c.pasteXml(a,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}),
+a=!0)}catch(l){}a||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(a){function b(a){if(null!=a){for(var b=!0,c=0;c<a.length&&b;c++)b=b&&d.model.isEdge(a[c]);var e=d.view.translate,c=d.view.scale,f=e.x,g=e.y,e=null;if(1==a.length&&b){var h=d.getCellGeometry(a[0]);null!=h&&(e=h.getTerminalPoint(!0))}e=null!=e?e:d.getBoundingBoxFromGeometry(a,b);null!=e&&(b=Math.round(d.snap(d.popupMenuHandler.triggerX/c-f)),c=Math.round(d.snap(d.popupMenuHandler.triggerY/
c-g)),d.cellsMoved(a,b-e.x,c-e.y))}}function e(){d.getModel().beginUpdate();try{b(mxClipboard.paste(d))}finally{d.getModel().endUpdate()}}if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){a=!1;try{Editor.enableNativeCipboard&&(c.readGraphModelFromClipboard(function(a){if(null!=a){d.getModel().beginUpdate();try{b(c.pasteXml(a,!0))}finally{d.getModel().endUpdate()}}else e()}),a=!0)}catch(n){}a||e()}});this.addAction("copySize",function(){var a=d.getSelectionCell();d.isEnabled()&&null!=a&&d.getModel().isVertex(a)&&
(a=d.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(d.isEnabled()&&!d.isSelectionEmpty()&&null!=c.copiedSize){d.getModel().beginUpdate();try{for(var a=d.getResizableCells(d.getSelectionCells()),b=0;b<a.length;b++)if(d.getModel().isVertex(a[b])){var e=d.getCellGeometry(a[b]);null!=e&&(e=e.clone(),e.width=c.copiedSize.width,e.height=c.copiedSize.height,d.getModel().setGeometry(a[b],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)||(c.copiedValue=a))},null,null,"Alt+Shift+B");this.addAction("pasteData",function(a,b){function e(b,c){var e=f.getValue(b);c=b.cloneValue(c);c.removeAttribute("placeholders");null==e||isNaN(e.nodeType)||c.setAttribute("placeholders",e.getAttribute("placeholders"));null!=a&&mxEvent.isShiftDown(a)||c.setAttribute("label",
@@ -3558,8 +3560,8 @@ k=d.getCellGeometry(a);h=Math.round(d.snap(d.popupMenuHandler.triggerX/f-h));f=M
c[e];if(d.getModel().isEdge(f)){var g=d.getCellGeometry(f);null!=b&&mxEvent.isShiftDown(a)?(d.setCellStyles(mxConstants.STYLE_EXIT_X,null,[f]),d.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[f]),d.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[f]),d.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[f])):null!=g&&(g=g.clone(),g.points=null,g.x=0,g.y=0,g.offset=null,d.getModel().setGeometry(f,g))}}}finally{d.getModel().endUpdate()}}},null,null,"Alt+Shift+C");h=this.addAction("subscript",mxUtils.bind(this,
function(){d.cellEditor.isContentEditing()&&document.execCommand("subscript",!1,null)}),null,null,Editor.ctrlKey+"+,");h=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")+"):",b=d.getView().getState(d.getSelectionCell()),e="";null!=
b&&(e=b.style[mxConstants.STYLE_IMAGE]||e);var f=d.cellEditor.saveSelection();c.showImageDialog(a,e,function(a,b,c){if(d.cellEditor.isContentEditing())d.cellEditor.restoreSelection(f),d.insertImage(a,b,c);else{var e=d.getSelectionCells();if(null!=a&&(0<a.length||0<e.length)){var g=null;d.getModel().beginUpdate();try{if(0==e.length){var e=[d.insertVertex(d.getDefaultParent(),null,"",0,0,b,c,"shape=image;imageAspect=0;aspect=fixed;verticalLabelPosition=bottom;verticalAlign=top;")],h=d.getCenterInsertPoint(d.getBoundingBoxFromGeometry(e,
-!0));e[0].geometry.x=h.x;e[0].geometry.y=h.y;g=e;d.fireEvent(new mxEventObject("cellsInserted","cells",g))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var k=d.getCurrentCellStyle(e[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?d.setCellStyles(mxConstants.STYLE_SHAPE,"image",e):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==d.getSelectionCount()&&null!=b&&null!=c){var m=e[0],l=d.getModel().getGeometry(m);null!=l&&(l=l.clone(),l.width=
-b,l.height=c,d.getModel().setGeometry(m,l))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=f;h=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(c,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){c.fireEvent(new mxEventObject("layers"));this.layersWindow.window.fit()})),
+!0));e[0].geometry.x=h.x;e[0].geometry.y=h.y;g=e;d.fireEvent(new mxEventObject("cellsInserted","cells",g))}d.setCellStyles(mxConstants.STYLE_IMAGE,0<a.length?a:null,e);var k=d.getCurrentCellStyle(e[0]);"image"!=k[mxConstants.STYLE_SHAPE]&&"label"!=k[mxConstants.STYLE_SHAPE]?d.setCellStyles(mxConstants.STYLE_SHAPE,"image",e):0==a.length&&d.setCellStyles(mxConstants.STYLE_SHAPE,null,e);if(1==d.getSelectionCount()&&null!=b&&null!=c){var l=e[0],m=d.getModel().getGeometry(l);null!=m&&(m=m.clone(),m.width=
+b,m.height=c,d.getModel().setGeometry(l,m))}}finally{d.getModel().endUpdate()}null!=g&&(d.setSelectionCells(g),d.scrollCellToVisible(g[0]))}}},d.cellEditor.isContentEditing(),!d.cellEditor.isContentEditing())}}).isEnabled=f;h=this.addAction("layers",mxUtils.bind(this,function(){null==this.layersWindow?(this.layersWindow=new LayersWindow(c,document.body.offsetWidth-280,120,212,200),this.layersWindow.window.addListener("show",mxUtils.bind(this,function(){c.fireEvent(new mxEventObject("layers"));this.layersWindow.window.fit()})),
this.layersWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("layers"))}),this.layersWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("layers")),this.layersWindow.init()):this.layersWindow.window.setVisible(!this.layersWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+L");h.setToggleAction(!0);h.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.layersWindow&&this.layersWindow.window.isVisible()}));h=this.addAction("formatPanel",mxUtils.bind(this,
function(){c.toggleFormatPanel()}),null,null,Editor.ctrlKey+"+Shift+P");h.setToggleAction(!0);h.setSelectedCallback(mxUtils.bind(this,function(){return 0<c.formatWidth}));h=this.addAction("outline",mxUtils.bind(this,function(){null==this.outlineWindow?(this.outlineWindow=new OutlineWindow(c,document.body.offsetWidth-260,100,180,180),this.outlineWindow.window.addListener("show",mxUtils.bind(this,function(){c.fireEvent(new mxEventObject("outline"));this.outlineWindow.window.fit()})),this.outlineWindow.window.addListener("hide",
function(){c.fireEvent(new mxEventObject("outline"))}),this.outlineWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("outline"))):this.outlineWindow.window.setVisible(!this.outlineWindow.window.isVisible())}),null,null,Editor.ctrlKey+"+Shift+O");h.setToggleAction(!0);h.setSelectedCallback(mxUtils.bind(this,function(){return null!=this.outlineWindow&&this.outlineWindow.window.isVisible()}))};
@@ -3571,8 +3573,8 @@ mxResources.get("custom")+"...","",mxConstants.DEFAULT_FONTFAMILY,mxConstants.ST
e+">"))}),c)}d(mxResources.get("normal"),"p");d("","h1").firstChild.nextSibling.innerHTML='<h1 style="margin:0px;">'+mxResources.get("heading")+" 1</h1>";d("","h2").firstChild.nextSibling.innerHTML='<h2 style="margin:0px;">'+mxResources.get("heading")+" 2</h2>";d("","h3").firstChild.nextSibling.innerHTML='<h3 style="margin:0px;">'+mxResources.get("heading")+" 3</h3>";d("","h4").firstChild.nextSibling.innerHTML='<h4 style="margin:0px;">'+mxResources.get("heading")+" 4</h4>";d("","h5").firstChild.nextSibling.innerHTML=
'<h5 style="margin:0px;">'+mxResources.get("heading")+" 5</h5>";d("","h6").firstChild.nextSibling.innerHTML='<h6 style="margin:0px;">'+mxResources.get("heading")+" 6</h6>";d("","pre").firstChild.nextSibling.innerHTML='<pre style="margin:0px;">'+mxResources.get("formatted")+"</pre>";d("","blockquote").firstChild.nextSibling.innerHTML='<blockquote style="margin-top:0px;margin-bottom:0px;">'+mxResources.get("blockquote")+"</blockquote>"})));this.put("fontSize",new Menu(mxUtils.bind(this,function(c,d){var e=
[6,8,9,10,11,12,14,18,24,36,48,72];0>mxUtils.indexOf(e,this.defaultFontSize)&&(e.push(this.defaultFontSize),e.sort(function(a,b){return a-b}));for(var h=mxUtils.bind(this,function(c){if(null!=b.cellEditor.textarea){document.execCommand("fontSize",!1,"3");for(var d=b.cellEditor.textarea.getElementsByTagName("font"),e=0;e<d.length;e++)if("3"==d[e].getAttribute("size")){d[e].removeAttribute("size");d[e].style.fontSize=c+"px";break}a.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTSIZE],
-"values",[c],"cells",[b.cellEditor.getEditingCell()]))}}),k=mxUtils.bind(this,function(a){this.styleChange(c,a,[mxConstants.STYLE_FONTSIZE],[a],null,d,function(){h(a)})}),g=0;g<e.length;g++)k(e[g]);c.addSeparator(d);if(0<this.customFontSizes.length){for(var m=0,g=0;g<this.customFontSizes.length;g++)0>mxUtils.indexOf(e,this.customFontSizes[g])&&(k(this.customFontSizes[g]),m++);0<m&&c.addSeparator(d);c.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){this.customFontSizes=[]}),d);c.addSeparator(d)}var l=
-null;this.promptChange(c,mxResources.get("custom")+"...","("+mxResources.get("points")+")",this.defaultFontSize,mxConstants.STYLE_FONTSIZE,d,!0,mxUtils.bind(this,function(a){null!=l&&null!=b.cellEditor.textarea&&(b.cellEditor.textarea.focus(),b.cellEditor.restoreSelection(l));null!=a&&0<a.length&&(this.customFontSizes.push(a),h(a))}),null,function(){l=b.cellEditor.saveSelection();return!1})})));this.put("direction",new Menu(mxUtils.bind(this,function(a,c){a.addItem(mxResources.get("flipH"),null,function(){b.toggleCellStyles(mxConstants.STYLE_FLIPH,
+"values",[c],"cells",[b.cellEditor.getEditingCell()]))}}),k=mxUtils.bind(this,function(a){this.styleChange(c,a,[mxConstants.STYLE_FONTSIZE],[a],null,d,function(){h(a)})}),g=0;g<e.length;g++)k(e[g]);c.addSeparator(d);if(0<this.customFontSizes.length){for(var l=0,g=0;g<this.customFontSizes.length;g++)0>mxUtils.indexOf(e,this.customFontSizes[g])&&(k(this.customFontSizes[g]),l++);0<l&&c.addSeparator(d);c.addItem(mxResources.get("reset"),null,mxUtils.bind(this,function(){this.customFontSizes=[]}),d);c.addSeparator(d)}var m=
+null;this.promptChange(c,mxResources.get("custom")+"...","("+mxResources.get("points")+")",this.defaultFontSize,mxConstants.STYLE_FONTSIZE,d,!0,mxUtils.bind(this,function(a){null!=m&&null!=b.cellEditor.textarea&&(b.cellEditor.textarea.focus(),b.cellEditor.restoreSelection(m));null!=a&&0<a.length&&(this.customFontSizes.push(a),h(a))}),null,function(){m=b.cellEditor.saveSelection();return!1})})));this.put("direction",new Menu(mxUtils.bind(this,function(a,c){a.addItem(mxResources.get("flipH"),null,function(){b.toggleCellStyles(mxConstants.STYLE_FLIPH,
!1)},c);a.addItem(mxResources.get("flipV"),null,function(){b.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},c);this.addMenuItems(a,["-","rotation"],c)})));this.put("align",new Menu(mxUtils.bind(this,function(a,c){a.addItem(mxResources.get("leftAlign"),null,function(){b.alignCells(mxConstants.ALIGN_LEFT)},c);a.addItem(mxResources.get("center"),null,function(){b.alignCells(mxConstants.ALIGN_CENTER)},c);a.addItem(mxResources.get("rightAlign"),null,function(){b.alignCells(mxConstants.ALIGN_RIGHT)},c);
a.addSeparator(c);a.addItem(mxResources.get("topAlign"),null,function(){b.alignCells(mxConstants.ALIGN_TOP)},c);a.addItem(mxResources.get("middle"),null,function(){b.alignCells(mxConstants.ALIGN_MIDDLE)},c);a.addItem(mxResources.get("bottomAlign"),null,function(){b.alignCells(mxConstants.ALIGN_BOTTOM)},c)})));this.put("distribute",new Menu(mxUtils.bind(this,function(a,c){a.addItem(mxResources.get("horizontal"),null,function(){b.distributeCells(!0)},c);a.addItem(mxResources.get("vertical"),null,function(){b.distributeCells(!1)},
c)})));this.put("line",new Menu(mxUtils.bind(this,function(a,c){var d=b.view.getState(b.getSelectionCell());null!=d&&(d=mxUtils.getValue(d.style,mxConstants.STYLE_SHAPE),"arrow"!=d&&(this.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],[null,null,null],"geIcon geSprite geSprite-straight",c,!0).setAttribute("title",mxResources.get("straight")),this.edgeStyleChange(a,"",[mxConstants.STYLE_EDGE,mxConstants.STYLE_CURVED,mxConstants.STYLE_NOEDGESTYLE],
@@ -3595,24 +3597,24 @@ this.put("extras",new Menu(mxUtils.bind(this,function(a,b){this.addMenuItems(a,[
Menus.prototype.addSubmenu=function(a,b,c,e){var d=this.get(a);null!=d&&(d=d.isEnabled(),b.showDisabled||d)&&(c=b.addItem(e||mxResources.get(a),null,null,c,null,d),this.addMenu(a,b,c))};Menus.prototype.addMenu=function(a,b,c){var e=this.get(a);null!=e&&(b.showDisabled||e.isEnabled())&&this.get(a).execute(b,c)};
Menus.prototype.addInsertTableCellItem=function(a,b){var c=this.editorUi.editor.graph,e=c.getSelectionCell(),d=c.getCurrentCellStyle(e),f=c.isTable(e)||c.isTableRow(e)||c.isTableCell(e),h=c.isStack(e)||c.isStackChild(e),k=f,g=f;h&&(d=c.isStack(e)?d:c.getCellStyle(c.model.getParent(e)),g="0"==d.horizontalStack,k=!g);null!=b||!f&&!h?this.addInsertTableItem(a,mxUtils.bind(this,function(a,b,d,e,f){b=f||mxEvent.isControlDown(a)||mxEvent.isMetaDown(a)?c.createCrossFunctionalSwimlane(b,d,null,null,e||mxEvent.isShiftDown(a)?
"Cross-Functional Flowchart":null):c.createTable(b,d,null,null,e||mxEvent.isShiftDown(a)?"Table":null);a=mxEvent.isAltDown(a)?c.getFreeInsertPoint():c.getCenterInsertPoint(c.getBoundingBoxFromGeometry([b],!0));d=null;c.getModel().beginUpdate();try{d=c.importCells([b],a.x,a.y),c.fireEvent(new mxEventObject("cellsInserted","cells",c.model.getDescendants(d[0])))}finally{c.getModel().endUpdate()}null!=d&&0<d.length&&(c.scrollCellToVisible(d[0]),c.setSelectionCells(d))}),b):(k&&(d=a.addItem(mxResources.get("insertColumnBefore"),
-null,mxUtils.bind(this,function(){try{h?c.insertLane(e,!0):c.insertTableColumn(e,!0)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertcolumnbefore"),d.setAttribute("title",mxResources.get("insertColumnBefore")),d=a.addItem(mxResources.get("insertColumnAfter"),null,mxUtils.bind(this,function(){try{h?c.insertLane(e,!1):c.insertTableColumn(e,!1)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertcolumnafter"),d.setAttribute("title",mxResources.get("insertColumnAfter")),
-d=a.addItem(mxResources.get("deleteColumn"),null,mxUtils.bind(this,function(){if(null!=e)try{h?c.deleteLane(e):c.deleteTableColumn(e)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-deletecolumn"),d.setAttribute("title",mxResources.get("deleteColumn"))),g&&(d=a.addItem(mxResources.get("insertRowBefore"),null,mxUtils.bind(this,function(){try{h?c.insertLane(e,!0):c.insertTableRow(e,!0)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertrowbefore"),
-d.setAttribute("title",mxResources.get("insertRowBefore")),d=a.addItem(mxResources.get("insertRowAfter"),null,mxUtils.bind(this,function(){try{h?c.insertLane(e,!1):c.insertTableRow(e,!1)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertrowafter"),d.setAttribute("title",mxResources.get("insertRowAfter")),d=a.addItem(mxResources.get("deleteRow"),null,mxUtils.bind(this,function(){try{h?c.deleteLane(e):c.deleteTableRow(e)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-deleterow"),
+null,mxUtils.bind(this,function(){try{h?c.insertLane(e,!0):c.insertTableColumn(e,!0)}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-insertcolumnbefore"),d.setAttribute("title",mxResources.get("insertColumnBefore")),d=a.addItem(mxResources.get("insertColumnAfter"),null,mxUtils.bind(this,function(){try{h?c.insertLane(e,!1):c.insertTableColumn(e,!1)}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-insertcolumnafter"),d.setAttribute("title",mxResources.get("insertColumnAfter")),
+d=a.addItem(mxResources.get("deleteColumn"),null,mxUtils.bind(this,function(){if(null!=e)try{h?c.deleteLane(e):c.deleteTableColumn(e)}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-deletecolumn"),d.setAttribute("title",mxResources.get("deleteColumn"))),g&&(d=a.addItem(mxResources.get("insertRowBefore"),null,mxUtils.bind(this,function(){try{h?c.insertLane(e,!0):c.insertTableRow(e,!0)}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-insertrowbefore"),
+d.setAttribute("title",mxResources.get("insertRowBefore")),d=a.addItem(mxResources.get("insertRowAfter"),null,mxUtils.bind(this,function(){try{h?c.insertLane(e,!1):c.insertTableRow(e,!1)}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-insertrowafter"),d.setAttribute("title",mxResources.get("insertRowAfter")),d=a.addItem(mxResources.get("deleteRow"),null,mxUtils.bind(this,function(){try{h?c.deleteLane(e):c.deleteTableRow(e)}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-deleterow"),
d.setAttribute("title",mxResources.get("deleteRow"))))};
-Menus.prototype.addInsertTableItem=function(a,b,c,e){function d(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=h.getParentByName(mxEvent.getSource(a),"TD");var b=!1;if(null!=g){k=h.getParentByName(g,"TR");for(var c=mxEvent.isMouseEvent(a)?2:4,d=p,e=Math.min(20,k.sectionRowIndex+c),c=Math.min(20,g.cellIndex+c),f=d.rows.length;f<e;f++)for(var m=d.insertRow(f),l=0;l<d.rows[0].cells.length;l++)m.insertCell(-1);
-for(f=0;f<d.rows.length;f++)for(m=d.rows[f],l=m.cells.length;l<c;l++)m.insertCell(-1);r.innerHTML=g.cellIndex+1+"x"+(k.sectionRowIndex+1);for(d=0;d<p.rows.length;d++)for(e=p.rows[d],c=0;c<e.cells.length;c++)f=e.cells[c],d==k.sectionRowIndex&&c==g.cellIndex&&(b="blue"==f.style.backgroundColor),f.style.backgroundColor=d<=k.sectionRowIndex&&c<=g.cellIndex?"blue":"transparent"}mxEvent.consume(a);return b}e=null!=e?e:!0;b=null!=b?b:mxUtils.bind(this,function(a,b,c){var e=this.editorUi.editor.graph;a=e.getParentByName(mxEvent.getSource(a),
+Menus.prototype.addInsertTableItem=function(a,b,c,e){function d(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=h.getParentByName(mxEvent.getSource(a),"TD");var b=!1;if(null!=g){k=h.getParentByName(g,"TR");for(var c=mxEvent.isMouseEvent(a)?2:4,d=p,e=Math.min(20,k.sectionRowIndex+c),c=Math.min(20,g.cellIndex+c),f=d.rows.length;f<e;f++)for(var l=d.insertRow(f),m=0;m<d.rows[0].cells.length;m++)l.insertCell(-1);
+for(f=0;f<d.rows.length;f++)for(l=d.rows[f],m=l.cells.length;m<c;m++)l.insertCell(-1);r.innerHTML=g.cellIndex+1+"x"+(k.sectionRowIndex+1);for(d=0;d<p.rows.length;d++)for(e=p.rows[d],c=0;c<e.cells.length;c++)f=e.cells[c],d==k.sectionRowIndex&&c==g.cellIndex&&(b="blue"==f.style.backgroundColor),f.style.backgroundColor=d<=k.sectionRowIndex&&c<=g.cellIndex?"blue":"transparent"}mxEvent.consume(a);return b}e=null!=e?e:!0;b=null!=b?b:mxUtils.bind(this,function(a,b,c){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(d(b,c));b=e.cellEditor.textarea.getElementsByTagName("table");if(b.length==a.length+1)for(g=b.length-1;0<=g;g--)if(0==g||b[g]!=a[g-1]){e.selectNode(b[g].rows[0].cells[0]);break}}});var h=this.editorUi.editor.graph,k=null,g=null;null==c&&(a.div.className+=" geToolbarMenu",a.labels=!1);a=
-a.addItem("",null,null,c,null,null,null,!0);a.firstChild.style.fontSize=Menus.prototype.defaultFontSize+"px";a.firstChild.innerHTML="";var m=document.createElement("input");m.setAttribute("id","geTitleOption");m.setAttribute("type","checkbox");c=document.createElement("label");mxUtils.write(c,mxResources.get("title"));c.setAttribute("for","geTitleOption");mxEvent.addGestureListeners(c,null,null,mxUtils.bind(this,function(a){mxEvent.consume(a)}));mxEvent.addGestureListeners(m,null,null,mxUtils.bind(this,
-function(a){mxEvent.consume(a)}));var l=document.createElement("input");l.setAttribute("id","geContainerOption");l.setAttribute("type","checkbox");var n=document.createElement("label");mxUtils.write(n,mxResources.get("container"));n.setAttribute("for","geContainerOption");mxEvent.addGestureListeners(n,null,null,mxUtils.bind(this,function(a){mxEvent.consume(a)}));mxEvent.addGestureListeners(l,null,null,mxUtils.bind(this,function(a){mxEvent.consume(a)}));e&&(a.firstChild.appendChild(m),a.firstChild.appendChild(c),
-mxUtils.br(a.firstChild),a.firstChild.appendChild(l),a.firstChild.appendChild(n),mxUtils.br(a.firstChild),mxUtils.br(a.firstChild));var p=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(p);var r=document.createElement("div");r.style.padding="4px";r.innerHTML=
-"1x1";a.firstChild.appendChild(r);mxEvent.addGestureListeners(p,null,null,mxUtils.bind(this,function(a){var c=f(a);null!=g&&null!=k&&c&&(b(a,k.sectionRowIndex+1,g.cellIndex+1,m.checked,l.checked),window.setTimeout(mxUtils.bind(this,function(){this.editorUi.hideCurrentMenu()}),0))}));mxEvent.addListener(p,"mouseover",f)};
+a.addItem("",null,null,c,null,null,null,!0);a.firstChild.style.fontSize=Menus.prototype.defaultFontSize+"px";a.firstChild.innerHTML="";var l=document.createElement("input");l.setAttribute("id","geTitleOption");l.setAttribute("type","checkbox");c=document.createElement("label");mxUtils.write(c,mxResources.get("title"));c.setAttribute("for","geTitleOption");mxEvent.addGestureListeners(c,null,null,mxUtils.bind(this,function(a){mxEvent.consume(a)}));mxEvent.addGestureListeners(l,null,null,mxUtils.bind(this,
+function(a){mxEvent.consume(a)}));var m=document.createElement("input");m.setAttribute("id","geContainerOption");m.setAttribute("type","checkbox");var n=document.createElement("label");mxUtils.write(n,mxResources.get("container"));n.setAttribute("for","geContainerOption");mxEvent.addGestureListeners(n,null,null,mxUtils.bind(this,function(a){mxEvent.consume(a)}));mxEvent.addGestureListeners(m,null,null,mxUtils.bind(this,function(a){mxEvent.consume(a)}));e&&(a.firstChild.appendChild(l),a.firstChild.appendChild(c),
+mxUtils.br(a.firstChild),a.firstChild.appendChild(m),a.firstChild.appendChild(n),mxUtils.br(a.firstChild),mxUtils.br(a.firstChild));var p=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(p);var r=document.createElement("div");r.style.padding="4px";r.innerHTML=
+"1x1";a.firstChild.appendChild(r);mxEvent.addGestureListeners(p,null,null,mxUtils.bind(this,function(a){var c=f(a);null!=g&&null!=k&&c&&(b(a,k.sectionRowIndex+1,g.cellIndex+1,l.checked,m.checked),window.setTimeout(mxUtils.bind(this,function(){this.editorUi.hideCurrentMenu()}),0))}));mxEvent.addListener(p,"mouseover",f)};
Menus.prototype.edgeStyleChange=function(a,b,c,e,d,f,h,k){return this.showIconOnly(a.addItem(b,k,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;a.stopEditing(!1);a.getModel().beginUpdate();try{for(var b=a.getSelectionCells(),d=[],f=0;f<b.length;f++){var k=b[f];if(a.getModel().isEdge(k)){if(h){var r=a.getCellGeometry(k);null!=r&&(r=r.clone(),r.points=null,a.getModel().setGeometry(k,r))}for(var u=0;u<c.length;u++)a.setCellStyles(c[u],e[u],[k]);d.push(k)}}this.editorUi.fireEvent(new mxEventObject("styleChanged",
"keys",c,"values",e,"cells",d))}finally{a.getModel().endUpdate()}}),f,d))};Menus.prototype.showIconOnly=function(a){var b=a.getElementsByTagName("td");for(i=0;i<b.length;i++)"mxPopupMenuItem"==b[i].getAttribute("class")&&(b[i].style.display="none");return a};
-Menus.prototype.styleChange=function(a,b,c,e,d,f,h,k,g){var m=this.createStyleChangeFunction(c,e);a=a.addItem(b,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;null!=h&&a.cellEditor.isContentEditing()?h():m(k)}),f,d);g&&this.showIconOnly(a);return a};
+Menus.prototype.styleChange=function(a,b,c,e,d,f,h,k,g){var l=this.createStyleChangeFunction(c,e);a=a.addItem(b,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph;null!=h&&a.cellEditor.isContentEditing()?h():l(k)}),f,d);g&&this.showIconOnly(a);return a};
Menus.prototype.createStyleChangeFunction=function(a,b){return mxUtils.bind(this,function(c){var e=this.editorUi.editor.graph;e.stopEditing(!1);e.getModel().beginUpdate();try{for(var d=e.getEditableCells(e.getSelectionCells()),f=!1,h=0;h<a.length;h++)if(e.setCellStyles(a[h],b[h],d),a[h]==mxConstants.STYLE_ALIGN&&e.updateLabelElements(d,function(a){a.removeAttribute("align");a.style.textAlign=null}),a[h]==mxConstants.STYLE_FONTFAMILY||"fontSource"==a[h])f=!0;if(f)for(f=0;f<d.length;f++)0==e.model.getChildCount(d[f])&&
e.autoSizeCell(d[f],!1);null!=c&&c();this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",a,"values",b,"cells",d))}finally{e.getModel().endUpdate()}})};
-Menus.prototype.promptChange=function(a,b,c,e,d,f,h,k,g,m){return a.addItem(b,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph,b=e,f=a.getView().getState(a.getSelectionCell());null!=f&&(b=f.style[d]||b);var g=null!=m?m():!0,b=new FilenameDialog(this.editorUi,b,mxResources.get("apply"),mxUtils.bind(this,function(b){if(null!=b&&0<b.length){if(g){a.getModel().beginUpdate();try{a.stopEditing(!1),a.setCellStyles(d,b)}finally{a.getModel().endUpdate()}}null!=k&&k(b)}}),mxResources.get("enterValue")+
-(0<c.length?" "+c:""),null,null,null,null,function(){null!=k&&null!=m&&k(null)});this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}),f,g,h)};
+Menus.prototype.promptChange=function(a,b,c,e,d,f,h,k,g,l){return a.addItem(b,null,mxUtils.bind(this,function(){var a=this.editorUi.editor.graph,b=e,f=a.getView().getState(a.getSelectionCell());null!=f&&(b=f.style[d]||b);var g=null!=l?l():!0,b=new FilenameDialog(this.editorUi,b,mxResources.get("apply"),mxUtils.bind(this,function(b){if(null!=b&&0<b.length){if(g){a.getModel().beginUpdate();try{a.stopEditing(!1),a.setCellStyles(d,b)}finally{a.getModel().endUpdate()}}null!=k&&k(b)}}),mxResources.get("enterValue")+
+(0<c.length?" "+c:""),null,null,null,null,function(){null!=k&&null!=l&&k(null)});this.editorUi.showDialog(b.container,300,80,!0,!0);b.init()}),f,g,h)};
Menus.prototype.pickColor=function(a,b,c){var e=this.editorUi,d=e.editor.graph,f=226+17*(Math.ceil(ColorDialog.prototype.presetColors.length/12)+Math.ceil(ColorDialog.prototype.defaultColors.length/12));if(null!=b&&d.cellEditor.isContentEditing()){var h=d.cellEditor.saveSelection();a=new ColorDialog(this.editorUi,c||d.shapeForegroundColor,mxUtils.bind(this,function(a){d.cellEditor.restoreSelection(h);document.execCommand(b,!1,a!=mxConstants.NONE?a:"transparent");var c={forecolor:mxConstants.STYLE_FONTCOLOR,
backcolor:mxConstants.STYLE_LABEL_BACKGROUNDCOLOR}[b];null!=c&&e.fireEvent(new mxEventObject("styleChanged","keys",[c],"values",[a],"cells",[d.cellEditor.getEditingCell()]))}),function(){d.cellEditor.restoreSelection(h)});this.editorUi.showDialog(a.container,230,f,!0,!0);a.init()}else{null==this.colorDialog&&(this.colorDialog=new ColorDialog(this.editorUi));this.colorDialog.currentColorKey=a;c=d.getView().getState(d.getSelectionCell());var k=mxConstants.NONE;null!=c&&(k=c.style[a]||k);k==mxConstants.NONE?
(k=d.shapeBackgroundColor.substring(1),this.colorDialog.picker.fromString(k),this.colorDialog.colorInput.value=mxConstants.NONE):this.colorDialog.picker.fromString(mxUtils.rgba2hex(k));this.editorUi.showDialog(this.colorDialog.container,230,f,!0,!0);this.colorDialog.init()}};Menus.prototype.toggleStyle=function(a,b){var c=this.editorUi.editor.graph,e=c.toggleCellStyles(a,b);this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[a],"values",[e],"cells",c.getSelectionCells()))};
@@ -3665,10 +3667,10 @@ null,"geIcon geSprite geSprite-fontbackground");d.setAttribute("title",mxResourc
"-2px";e.appendChild(c);this.appendDropDownImageHtml(e);EditorUi.compactUi&&(e.getElementsByTagName("img")[0].style.left="22px",e.getElementsByTagName("img")[0].style.top="5px");this.addSeparator();this.addButton("geIcon geSprite geSprite-code",mxResources.get("html"),function(){b.cellEditor.toggleViewMode();0<b.cellEditor.textarea.innerHTML.length&&("&nbsp;"!=b.cellEditor.textarea.innerHTML||!b.cellEditor.clearOnChange)&&window.setTimeout(function(){document.execCommand("selectAll",!1,null)})});
this.addSeparator();e=this.addMenuFunction("",mxResources.get("insert"),!0,mxUtils.bind(this,function(a){a.addItem(mxResources.get("insertLink"),null,mxUtils.bind(this,function(){this.editorUi.actions.get("link").funct()}));a.addItem(mxResources.get("insertImage"),null,mxUtils.bind(this,function(){this.editorUi.actions.get("image").funct()}));a.addItem(mxResources.get("insertHorizontalRule"),null,mxUtils.bind(this,function(){document.execCommand("inserthorizontalrule",!1,null)}))}));e.style.whiteSpace=
"nowrap";e.style.overflow="hidden";e.style.position="relative";e.style.width="16px";e.innerHTML="";c=document.createElement("div");c.className="geSprite geSprite-plus";c.style.marginLeft="-4px";c.style.marginTop="-3px";e.appendChild(c);this.appendDropDownImageHtml(e);EditorUi.compactUi&&(e.getElementsByTagName("img")[0].style.left="24px",e.getElementsByTagName("img")[0].style.top="5px",e.style.width="30px");this.addSeparator();var d=this.addMenuFunction("geIcon geSprite geSprite-table",mxResources.get("table"),
-!1,mxUtils.bind(this,function(a){var c=b.getSelectedElement(),d=b.getParentByNames(c,["TD","TH"],b.cellEditor.text2),e=b.getParentByName(c,"TR",b.cellEditor.text2);if(null==e)this.editorUi.menus.addInsertTableItem(a);else{var f=b.getParentByName(e,"TABLE",b.cellEditor.text2),c=a.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertColumn(f,null!=d?d.cellIndex:0))}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-insertcolumnbefore");c.setAttribute("title",mxResources.get("insertColumnBefore"));
-c=a.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertColumn(f,null!=d?d.cellIndex+1:-1))}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-insertcolumnafter");c.setAttribute("title",mxResources.get("insertColumnAfter"));c=a.addItem("Delete column",null,mxUtils.bind(this,function(){if(null!=d)try{b.deleteColumn(f,d.cellIndex)}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-deletecolumn");c.setAttribute("title",mxResources.get("deleteColumn"));
-c=a.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertRow(f,e.sectionRowIndex))}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-insertrowbefore");c.setAttribute("title",mxResources.get("insertRowBefore"));c=a.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertRow(f,e.sectionRowIndex+1))}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-insertrowafter");c.setAttribute("title",mxResources.get("insertRowAfter"));c=a.addItem("",
-null,mxUtils.bind(this,function(){try{b.deleteRow(f,e.sectionRowIndex)}catch(l){this.editorUi.handleError(l)}}),null,"geIcon geSprite geSprite-deleterow");c.setAttribute("title",mxResources.get("deleteRow"));c=a.addItem("",null,mxUtils.bind(this,function(){var a=f.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(a,
+!1,mxUtils.bind(this,function(a){var c=b.getSelectedElement(),d=b.getParentByNames(c,["TD","TH"],b.cellEditor.text2),e=b.getParentByName(c,"TR",b.cellEditor.text2);if(null==e)this.editorUi.menus.addInsertTableItem(a);else{var f=b.getParentByName(e,"TABLE",b.cellEditor.text2),c=a.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertColumn(f,null!=d?d.cellIndex:0))}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertcolumnbefore");c.setAttribute("title",mxResources.get("insertColumnBefore"));
+c=a.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertColumn(f,null!=d?d.cellIndex+1:-1))}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertcolumnafter");c.setAttribute("title",mxResources.get("insertColumnAfter"));c=a.addItem("Delete column",null,mxUtils.bind(this,function(){if(null!=d)try{b.deleteColumn(f,d.cellIndex)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-deletecolumn");c.setAttribute("title",mxResources.get("deleteColumn"));
+c=a.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertRow(f,e.sectionRowIndex))}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertrowbefore");c.setAttribute("title",mxResources.get("insertRowBefore"));c=a.addItem("",null,mxUtils.bind(this,function(){try{b.selectNode(b.insertRow(f,e.sectionRowIndex+1))}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-insertrowafter");c.setAttribute("title",mxResources.get("insertRowAfter"));c=a.addItem("",
+null,mxUtils.bind(this,function(){try{b.deleteRow(f,e.sectionRowIndex)}catch(m){this.editorUi.handleError(m)}}),null,"geIcon geSprite geSprite-deleterow");c.setAttribute("title",mxResources.get("deleteRow"));c=a.addItem("",null,mxUtils.bind(this,function(){var a=f.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(a,
function(a){null==a||a==mxConstants.NONE?(f.removeAttribute("border"),f.style.border="",f.style.borderCollapse=""):(f.setAttribute("border","1"),f.style.border="1px solid "+a,f.style.borderCollapse="collapse")})}),null,"geIcon geSprite geSprite-strokecolor");c.setAttribute("title",mxResources.get("borderColor"));c=a.addItem("",null,mxUtils.bind(this,function(){var a=f.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(a,function(a){f.style.backgroundColor=null==a||a==mxConstants.NONE?"":a})}),null,"geIcon geSprite geSprite-fillcolor");c.setAttribute("title",mxResources.get("backgroundColor"));c=a.addItem("",null,mxUtils.bind(this,function(){var a=f.getAttribute("cellPadding")||0,a=new FilenameDialog(this.editorUi,a,mxResources.get("apply"),mxUtils.bind(this,function(a){null!=a&&0<a.length?f.setAttribute("cellPadding",
a):f.removeAttribute("cellPadding")}),mxResources.get("spacing"));this.editorUi.showDialog(a.container,300,80,!0,!0);a.init()}),null,"geIcon geSprite geSprite-fit");c.setAttribute("title",mxResources.get("spacing"));c=a.addItem("",null,mxUtils.bind(this,function(){f.setAttribute("align","left")}),null,"geIcon geSprite geSprite-left");c.setAttribute("title",mxResources.get("left"));c=a.addItem("",null,mxUtils.bind(this,function(){f.setAttribute("align","center")}),null,"geIcon geSprite geSprite-center");
@@ -3682,59 +3684,59 @@ Toolbar.prototype.createLabel=function(a,b){var c=document.createElement("a");c.
Toolbar.prototype.addMenuHandler=function(a,b,c,e){if(null!=c){var d=this.editorUi.editor.graph,f=null,h=!0;mxEvent.addListener(a,"click",mxUtils.bind(this,function(k){if(h&&(null==a.enabled||a.enabled)){d.popupMenuHandler.hideMenu();f=new mxPopupMenu(c);f.div.className+=" geToolbarMenu";f.showDisabled=e;f.labels=b;f.autoExpand=!0;var g=mxUtils.getOffset(a);f.popup(g.x,g.y+a.offsetHeight,null,k);this.editorUi.setCurrentMenu(f,a);!b&&f.div.scrollHeight>f.div.clientHeight&&(f.div.style.width="40px");
f.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(f,arguments);this.editorUi.resetCurrentMenu();f.destroy()});f.addListener(mxEvent.EVENT_HIDE,mxUtils.bind(this,function(){this.currentElt=null}))}h=!0;mxEvent.consume(k)}));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,b,c,e){function d(){var b=h.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 f(){var a=l(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);a.style.marginBottom="8px";return a}this.editorUi=a;var h=document.createElement("input");h.style.marginBottom="10px";mxClient.IS_IE&&(h.style.marginTop="10px",document.body.appendChild(h));var k=null!=c?c:this.createApplyFunction();
-this.init=function(){mxClient.IS_TOUCH||h.focus()};var g=new mxJSColor.color(h);g.pickerOnfocus=!1;g.showPicker();c=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";c.appendChild(mxJSColor.picker.box);var m=document.createElement("center"),l=mxUtils.bind(this,function(a,b,c,e){b=null!=b?b:12;var k=document.createElement("table");k.style.borderCollapse=
-"collapse";k.setAttribute("cellspacing","0");k.style.marginBottom="20px";k.style.cellSpacing="0px";var l=document.createElement("tbody");k.appendChild(l);for(var n=a.length/b,p=0;p<n;p++){for(var r=document.createElement("tr"),t=0;t<b;t++)mxUtils.bind(this,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);if("none"==a)b.style.background="url('"+Dialog.prototype.noColorImage+"')";else if(null!=
-a){b.style.backgroundColor="#"+a;var e=this.colorNames[a.toUpperCase()];null!=e&&b.setAttribute("title",e)}r.appendChild(b);null!=a&&(b.style.cursor="pointer",mxEvent.addListener(b,"click",function(){"none"==a?(g.fromString("ffffff"),h.value="none"):g.fromString(a)}),mxEvent.addListener(b,"dblclick",d))})(a[p*b+t]);l.appendChild(r)}e&&(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();k.parentNode.replaceChild(f(),k)}));m.appendChild(k);return k});c.appendChild(h);if(mxClient.IS_IE||mxClient.IS_IE11)h.style.width="216px";else{h.style.width="182px";var n=document.createElement("input");n.setAttribute("type","color");
-n.style.visibility="hidden";n.style.width="0px";n.style.height="0px";n.style.border="none";n.style.marginLeft="2px";c.style.whiteSpace="nowrap";c.appendChild(n);c.appendChild(mxUtils.button("...",function(){document.activeElement==n?h.focus():(n.value="#"+h.value,n.click())}));mxEvent.addListener(n,"input",function(){g.fromString(n.value.substring(1))})}mxUtils.br(c);f();var p=l(this.presetColors);p.style.marginBottom="8px";p=l(this.defaultColors);p.style.marginBottom="16px";c.appendChild(m);p=document.createElement("div");
-p.style.textAlign="right";p.style.whiteSpace="nowrap";var r=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=e&&e()});r.className="geBtn";a.editor.cancelFirst&&p.appendChild(r);var u=mxUtils.button(mxResources.get("apply"),d);u.className="geBtn gePrimaryBtn";p.appendChild(u);a.editor.cancelFirst||p.appendChild(r);null!=b&&("none"==b?(g.fromString("ffffff"),h.value="none"):g.fromString(b));c.appendChild(p);this.picker=g;this.colorInput=h;mxEvent.addListener(c,"keydown",function(b){27==
-b.keyCode&&(a.hideDialog(),null!=e&&e(),mxEvent.consume(b))});this.container=c};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.colorNames={};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(" ");
+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 f(){var a=m(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);a.style.marginBottom="8px";return a}this.editorUi=a;var h=document.createElement("input");h.style.marginBottom="10px";mxClient.IS_IE&&(h.style.marginTop="10px",document.body.appendChild(h));var k=null!=c?c:this.createApplyFunction();
+this.init=function(){mxClient.IS_TOUCH||h.focus()};var g=new mxJSColor.color(h);g.pickerOnfocus=!1;g.showPicker();c=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";c.appendChild(mxJSColor.picker.box);var l=document.createElement("center"),m=mxUtils.bind(this,function(a,b,c,e){b=null!=b?b:12;var k=document.createElement("table");k.style.borderCollapse=
+"collapse";k.setAttribute("cellspacing","0");k.style.marginBottom="20px";k.style.cellSpacing="0px";k.style.marginLeft="1px";var m=document.createElement("tbody");k.appendChild(m);for(var n=a.length/b,p=0;p<n;p++){for(var r=document.createElement("tr"),t=0;t<b;t++)mxUtils.bind(this,function(a){var b=document.createElement("td");b.style.border="0px solid black";b.style.padding="0px";b.style.width="16px";b.style.height="16px";null==a&&(a=c);if(null!=a){b.style.borderWidth="1px";"none"==a?b.style.background=
+"url('"+Dialog.prototype.noColorImage+"')":b.style.backgroundColor="#"+a;var e=this.colorNames[a.toUpperCase()];null!=e&&b.setAttribute("title",e)}r.appendChild(b);null!=a&&(b.style.cursor="pointer",mxEvent.addListener(b,"click",function(){"none"==a?(g.fromString("ffffff"),h.value="none"):g.fromString(a)}),mxEvent.addListener(b,"dblclick",d))})(a[p*b+t]);m.appendChild(r)}e&&(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();k.parentNode.replaceChild(f(),k)}));l.appendChild(k);return k});c.appendChild(h);if(mxClient.IS_IE||mxClient.IS_IE11)h.style.width="216px";else{h.style.width="182px";var n=document.createElement("input");
+n.setAttribute("type","color");n.style.visibility="hidden";n.style.width="0px";n.style.height="0px";n.style.border="none";n.style.marginLeft="2px";c.style.whiteSpace="nowrap";c.appendChild(n);c.appendChild(mxUtils.button("...",function(){document.activeElement==n?h.focus():(n.value="#"+h.value,n.click())}));mxEvent.addListener(n,"input",function(){g.fromString(n.value.substring(1))})}mxUtils.br(c);f();var p=m(this.presetColors);p.style.marginBottom="8px";p=m(this.defaultColors);p.style.marginBottom=
+"16px";c.appendChild(l);p=document.createElement("div");p.style.textAlign="right";p.style.whiteSpace="nowrap";var r=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog();null!=e&&e()});r.className="geBtn";a.editor.cancelFirst&&p.appendChild(r);var u=mxUtils.button(mxResources.get("apply"),d);u.className="geBtn gePrimaryBtn";p.appendChild(u);a.editor.cancelFirst||p.appendChild(r);null!=b&&("none"==b?(g.fromString("ffffff"),h.value="none"):g.fromString(b));c.appendChild(p);this.picker=
+g;this.colorInput=h;mxEvent.addListener(c,"keydown",function(b){27==b.keyCode&&(a.hideDialog(),null!=e&&e(),mxEvent.consume(b))});this.container=c};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.colorNames={};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 b=this.editorUi.editor.graph;b.getModel().beginUpdate();try{b.setCellStyles(this.currentColorKey,a),this.editorUi.fireEvent(new mxEventObject("styleChanged","keys",[this.currentColorKey],"values",[a],"cells",b.getSelectionCells()))}finally{b.getModel().endUpdate()}})};ColorDialog.recentColors=[];
ColorDialog.addRecentColor=function(a,b){null!=a&&(mxUtils.remove(a,ColorDialog.recentColors),ColorDialog.recentColors.splice(0,0,a),ColorDialog.recentColors.length>=b&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]};
var AboutDialog=function(a){var b=document.createElement("div");b.setAttribute("align","center");var c=document.createElement("h3");mxUtils.write(c,mxResources.get("about")+" GraphEditor");b.appendChild(c);c=document.createElement("img");c.style.border="0px";c.setAttribute("width","176");c.setAttribute("width","151");c.setAttribute("src",IMAGE_PATH+"/logo.png");b.appendChild(c);mxUtils.br(b);mxUtils.write(b,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(b);c=document.createElement("a");c.setAttribute("href",
-"http://www.jgraph.com/");c.setAttribute("target","_blank");mxUtils.write(c,"www.jgraph.com");b.appendChild(c);mxUtils.br(b);mxUtils.br(b);c=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});c.className="geBtn gePrimaryBtn";b.appendChild(c);this.container=b},TextareaDialog=function(a,b,c,e,d,f,h,k,g,m,l,n,p,r){h=null!=h?h:300;k=null!=k?k:120;m=null!=m?m:!1;var u,v,t=document.createElement("table"),x=document.createElement("tbody");u=document.createElement("tr");v=document.createElement("td");
-v.style.fontSize="10pt";v.style.width="100px";mxUtils.write(v,b);u.appendChild(v);x.appendChild(u);u=document.createElement("tr");v=document.createElement("td");var w=document.createElement("textarea");l&&w.setAttribute("wrap","off");w.setAttribute("spellcheck","false");w.setAttribute("autocorrect","off");w.setAttribute("autocomplete","off");w.setAttribute("autocapitalize","off");mxUtils.write(w,c||"");w.style.resize="none";w.style.width=h+"px";w.style.height=k+"px";this.textarea=w;this.init=function(){w.focus();
+"http://www.jgraph.com/");c.setAttribute("target","_blank");mxUtils.write(c,"www.jgraph.com");b.appendChild(c);mxUtils.br(b);mxUtils.br(b);c=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});c.className="geBtn gePrimaryBtn";b.appendChild(c);this.container=b},TextareaDialog=function(a,b,c,e,d,f,h,k,g,l,m,n,p,r){h=null!=h?h:300;k=null!=k?k:120;l=null!=l?l:!1;var u,v,t=document.createElement("table"),x=document.createElement("tbody");u=document.createElement("tr");v=document.createElement("td");
+v.style.fontSize="10pt";v.style.width="100px";mxUtils.write(v,b);u.appendChild(v);x.appendChild(u);u=document.createElement("tr");v=document.createElement("td");var w=document.createElement("textarea");m&&w.setAttribute("wrap","off");w.setAttribute("spellcheck","false");w.setAttribute("autocorrect","off");w.setAttribute("autocomplete","off");w.setAttribute("autocapitalize","off");mxUtils.write(w,c||"");w.style.resize="none";w.style.width=h+"px";w.style.height=k+"px";this.textarea=w;this.init=function(){w.focus();
w.scrollTop=0};v.appendChild(w);u.appendChild(v);x.appendChild(u);u=document.createElement("tr");v=document.createElement("td");v.style.paddingTop="14px";v.style.whiteSpace="nowrap";v.setAttribute("align","right");null!=p&&(b=mxUtils.button(mxResources.get("help"),function(){a.editor.graph.openLink(p)}),b.className="geBtn",v.appendChild(b));if(null!=r)for(b=0;b<r.length;b++)(function(a,b,c){a=mxUtils.button(a,function(a){b(a,w)});null!=c&&a.setAttribute("title",c);a.className="geBtn";v.appendChild(a)})(r[b][0],
-r[b][1],r[b][2]);f=mxUtils.button(f||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d()});f.setAttribute("title","Escape");f.className="geBtn";a.editor.cancelFirst&&v.appendChild(f);null!=g&&g(v,w);if(null!=e){var y=mxUtils.button(n||mxResources.get("apply"),function(){m||a.hideDialog();e(w.value)});y.setAttribute("title","Ctrl+Enter");y.className="geBtn gePrimaryBtn";v.appendChild(y);mxEvent.addListener(w,"keypress",function(a){13==a.keyCode&&mxEvent.isControlDown(a)&&y.click()})}a.editor.cancelFirst||
+r[b][1],r[b][2]);f=mxUtils.button(f||mxResources.get("cancel"),function(){a.hideDialog();null!=d&&d()});f.setAttribute("title","Escape");f.className="geBtn";a.editor.cancelFirst&&v.appendChild(f);null!=g&&g(v,w);if(null!=e){var y=mxUtils.button(n||mxResources.get("apply"),function(){l||a.hideDialog();e(w.value)});y.setAttribute("title","Ctrl+Enter");y.className="geBtn gePrimaryBtn";v.appendChild(y);mxEvent.addListener(w,"keypress",function(a){13==a.keyCode&&mxEvent.isControlDown(a)&&y.click()})}a.editor.cancelFirst||
v.appendChild(f);u.appendChild(v);x.appendChild(u);t.appendChild(x);this.container=t},EditDiagramDialog=function(a){var b=document.createElement("div");b.style.textAlign="right";var c=document.createElement("textarea");c.setAttribute("wrap","off");c.setAttribute("spellcheck","false");c.setAttribute("autocorrect","off");c.setAttribute("autocomplete","off");c.setAttribute("autocapitalize","off");c.style.overflow="auto";c.style.resize="none";c.style.width="600px";c.style.height="360px";c.style.marginBottom=
"16px";c.value=mxUtils.getPrettyXml(a.editor.getGraphXml());b.appendChild(c);this.init=function(){c.focus()};Graph.fileSupport&&(c.addEventListener("dragover",function(a){a.stopPropagation();a.preventDefault()},!1),c.addEventListener("drop",function(b){b.stopPropagation();b.preventDefault();if(0<b.dataTransfer.files.length){b=b.dataTransfer.files[0];var d=new FileReader;d.onload=function(a){c.value=a.target.result};d.readAsText(b)}else c.value=a.extractGraphModelFromEvent(b)},!1));var e=mxUtils.button(mxResources.get("cancel"),
function(){a.hideDialog()});e.className="geBtn";a.editor.cancelFirst&&b.appendChild(e);var d=document.createElement("select");d.style.width="180px";d.className="geBtn";if(a.editor.graph.isEnabled()){var f=document.createElement("option");f.setAttribute("value","replace");mxUtils.write(f,mxResources.get("replaceExistingDrawing"));d.appendChild(f)}f=document.createElement("option");f.setAttribute("value","new");mxUtils.write(f,mxResources.get("openInNewWindow"));EditDiagramDialog.showNewWindowOption&&
d.appendChild(f);a.editor.graph.isEnabled()&&(f=document.createElement("option"),f.setAttribute("value","import"),mxUtils.write(f,mxResources.get("addToExistingDrawing")),d.appendChild(f));b.appendChild(d);f=mxUtils.button(mxResources.get("ok"),function(){var b=Graph.zapGremlins(mxUtils.trim(c.value)),e=null;if("new"==d.value)a.hideDialog(),a.editor.editAsNew(b);else if("replace"==d.value){a.editor.graph.model.beginUpdate();try{a.editor.setGraphXml(mxUtils.parseXml(b).documentElement),a.hideDialog()}catch(n){e=
-n}finally{a.editor.graph.model.endUpdate()}}else if("import"==d.value){a.editor.graph.model.beginUpdate();try{var f=mxUtils.parseXml(b),m=new mxGraphModel;(new mxCodec(f)).decode(f.documentElement,m);var l=m.getChildren(m.getChildAt(m.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(l));a.hideDialog()}catch(n){e=n}finally{a.editor.graph.model.endUpdate()}}null!=e&&mxUtils.alert(e.message)});f.className="geBtn gePrimaryBtn";b.appendChild(f);a.editor.cancelFirst||b.appendChild(e);
+n}finally{a.editor.graph.model.endUpdate()}}else if("import"==d.value){a.editor.graph.model.beginUpdate();try{var f=mxUtils.parseXml(b),l=new mxGraphModel;(new mxCodec(f)).decode(f.documentElement,l);var m=l.getChildren(l.getChildAt(l.getRoot(),0));a.editor.graph.setSelectionCells(a.editor.graph.importCells(m));a.hideDialog()}catch(n){e=n}finally{a.editor.graph.model.endUpdate()}}null!=e&&mxUtils.alert(e.message)});f.className="geBtn gePrimaryBtn";b.appendChild(f);a.editor.cancelFirst||b.appendChild(e);
this.container=b};EditDiagramDialog.showNewWindowOption=!0;
-var ExportDialog=function(a){function b(){var a=l.value,b=a.lastIndexOf(".");l.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?w.removeAttribute("disabled"):w.setAttribute("disabled",
+var ExportDialog=function(a){function b(){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?w.removeAttribute("disabled"):w.setAttribute("disabled",
"disabled");"png"===n.value||"jpg"===n.value||"pdf"===n.value?y.removeAttribute("disabled"):y.setAttribute("disabled","disabled");"png"===n.value?(v.removeAttribute("disabled"),t.removeAttribute("disabled")):(v.setAttribute("disabled","disabled"),t.setAttribute("disabled","disabled"))}function c(){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 e=a.editor.graph,d=e.getGraphBounds(),f=e.view.scale,h=Math.ceil(d.width/
-f),k=Math.ceil(d.height/f),g,f=document.createElement("table"),m=document.createElement("tbody");f.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";g.style.width="100px";mxUtils.write(g,mxResources.get("filename")+":");d.appendChild(g);var l=document.createElement("input");l.setAttribute("value",a.editor.getOrCreateFilename());l.style.width="180px";g=document.createElement("td");g.appendChild(l);d.appendChild(g);
-m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("format")+":");d.appendChild(g);var n=document.createElement("select");n.style.width="180px";g=document.createElement("option");g.setAttribute("value","png");mxUtils.write(g,mxResources.get("formatPng"));n.appendChild(g);g=document.createElement("option");ExportDialog.showGifOption&&(g.setAttribute("value","gif"),mxUtils.write(g,mxResources.get("formatGif")),n.appendChild(g));
+f),k=Math.ceil(d.height/f),g,f=document.createElement("table"),l=document.createElement("tbody");f.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";g.style.width="100px";mxUtils.write(g,mxResources.get("filename")+":");d.appendChild(g);var m=document.createElement("input");m.setAttribute("value",a.editor.getOrCreateFilename());m.style.width="180px";g=document.createElement("td");g.appendChild(m);d.appendChild(g);
+l.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("format")+":");d.appendChild(g);var n=document.createElement("select");n.style.width="180px";g=document.createElement("option");g.setAttribute("value","png");mxUtils.write(g,mxResources.get("formatPng"));n.appendChild(g);g=document.createElement("option");ExportDialog.showGifOption&&(g.setAttribute("value","gif"),mxUtils.write(g,mxResources.get("formatGif")),n.appendChild(g));
g=document.createElement("option");g.setAttribute("value","jpg");mxUtils.write(g,mxResources.get("formatJpg"));n.appendChild(g);g=document.createElement("option");g.setAttribute("value","pdf");mxUtils.write(g,mxResources.get("formatPdf"));n.appendChild(g);g=document.createElement("option");g.setAttribute("value","svg");mxUtils.write(g,mxResources.get("formatSvg"));n.appendChild(g);ExportDialog.showXmlOption&&(g=document.createElement("option"),g.setAttribute("value","xml"),mxUtils.write(g,mxResources.get("formatXml")),
-n.appendChild(g));g=document.createElement("td");g.appendChild(n);d.appendChild(g);m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("zoom")+" (%):");d.appendChild(g);var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("value","100");p.style.width="180px";g=document.createElement("td");g.appendChild(p);d.appendChild(g);m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");
-g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("width")+":");d.appendChild(g);var r=document.createElement("input");r.setAttribute("value",h);r.style.width="180px";g=document.createElement("td");g.appendChild(r);d.appendChild(g);m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("height")+":");d.appendChild(g);var u=document.createElement("input");u.setAttribute("value",k);u.style.width="180px";g=document.createElement("td");
-g.appendChild(u);d.appendChild(g);m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("dpi")+":");d.appendChild(g);var v=document.createElement("select");v.style.width="180px";g=document.createElement("option");g.setAttribute("value","100");mxUtils.write(g,"100dpi");v.appendChild(g);g=document.createElement("option");g.setAttribute("value","200");mxUtils.write(g,"200dpi");v.appendChild(g);g=document.createElement("option");
+n.appendChild(g));g=document.createElement("td");g.appendChild(n);d.appendChild(g);l.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("zoom")+" (%):");d.appendChild(g);var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("value","100");p.style.width="180px";g=document.createElement("td");g.appendChild(p);d.appendChild(g);l.appendChild(d);d=document.createElement("tr");g=document.createElement("td");
+g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("width")+":");d.appendChild(g);var r=document.createElement("input");r.setAttribute("value",h);r.style.width="180px";g=document.createElement("td");g.appendChild(r);d.appendChild(g);l.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("height")+":");d.appendChild(g);var u=document.createElement("input");u.setAttribute("value",k);u.style.width="180px";g=document.createElement("td");
+g.appendChild(u);d.appendChild(g);l.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("dpi")+":");d.appendChild(g);var v=document.createElement("select");v.style.width="180px";g=document.createElement("option");g.setAttribute("value","100");mxUtils.write(g,"100dpi");v.appendChild(g);g=document.createElement("option");g.setAttribute("value","200");mxUtils.write(g,"200dpi");v.appendChild(g);g=document.createElement("option");
g.setAttribute("value","300");mxUtils.write(g,"300dpi");v.appendChild(g);g=document.createElement("option");g.setAttribute("value","400");mxUtils.write(g,"400dpi");v.appendChild(g);g=document.createElement("option");g.setAttribute("value","custom");mxUtils.write(g,mxResources.get("custom"));v.appendChild(g);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 x=!1;mxEvent.addListener(v,"change",function(){"custom"==this.value?(this.style.display="none",t.style.display="",t.focus()):(t.value=this.value,x||(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="",x||(p.value=a))});g=document.createElement("td");g.appendChild(v);g.appendChild(t);d.appendChild(g);m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize=
-"10pt";mxUtils.write(g,mxResources.get("background")+":");d.appendChild(g);var w=document.createElement("input");w.setAttribute("type","checkbox");w.checked=null==e.background||e.background==mxConstants.NONE;g=document.createElement("td");g.appendChild(w);mxUtils.write(g,mxResources.get("transparent"));d.appendChild(g);m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("grid")+":");d.appendChild(g);var y=document.createElement("input");
-y.setAttribute("type","checkbox");y.checked=!1;g=document.createElement("td");g.appendChild(y);d.appendChild(g);m.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("borderWidth")+":");d.appendChild(g);var E=document.createElement("input");E.setAttribute("type","number");E.setAttribute("value",ExportDialog.lastBorderValue);E.style.width="180px";g=document.createElement("td");g.appendChild(E);d.appendChild(g);m.appendChild(d);
-f.appendChild(m);mxEvent.addListener(n,"change",b);b();mxEvent.addListener(p,"change",function(){x=!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(k*a)):(p.value="100",r.value=h,u.value=k);c()});mxEvent.addListener(r,"change",function(){var a=parseInt(r.value)/h;0<a?(p.value=parseFloat((100*a).toFixed(2)),u.value=Math.floor(k*a)):(p.value="100",r.value=h,u.value=k);c()});mxEvent.addListener(u,"change",function(){var a=
-parseInt(u.value)/k;0<a?(p.value=parseFloat((100*a).toFixed(2)),r.value=Math.floor(h*a)):(p.value="100",r.value=h,u.value=k);c()});d=document.createElement("tr");g=document.createElement("td");g.setAttribute("align","right");g.style.paddingTop="22px";g.colSpan=2;var I=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(p.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var b=l.value,c=n.value,d=Math.max(0,parseFloat(p.value)||100)/100,f=Math.max(0,parseInt(E.value)),
-g=e.background,h=Math.max(1,parseInt(t.value));if(("svg"==c||"png"==c||"pdf"==c)&&w.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,b,c,g,d,f,h,y.checked)}}));I.className="geBtn gePrimaryBtn";var B=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});B.className="geBtn";a.editor.cancelFirst?(g.appendChild(B),g.appendChild(I)):(g.appendChild(I),g.appendChild(B));d.appendChild(g);m.appendChild(d);f.appendChild(m);
+"50");var x=!1;mxEvent.addListener(v,"change",function(){"custom"==this.value?(this.style.display="none",t.style.display="",t.focus()):(t.value=this.value,x||(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="",x||(p.value=a))});g=document.createElement("td");g.appendChild(v);g.appendChild(t);d.appendChild(g);l.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize=
+"10pt";mxUtils.write(g,mxResources.get("background")+":");d.appendChild(g);var w=document.createElement("input");w.setAttribute("type","checkbox");w.checked=null==e.background||e.background==mxConstants.NONE;g=document.createElement("td");g.appendChild(w);mxUtils.write(g,mxResources.get("transparent"));d.appendChild(g);l.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("grid")+":");d.appendChild(g);var y=document.createElement("input");
+y.setAttribute("type","checkbox");y.checked=!1;g=document.createElement("td");g.appendChild(y);d.appendChild(g);l.appendChild(d);d=document.createElement("tr");g=document.createElement("td");g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("borderWidth")+":");d.appendChild(g);var E=document.createElement("input");E.setAttribute("type","number");E.setAttribute("value",ExportDialog.lastBorderValue);E.style.width="180px";g=document.createElement("td");g.appendChild(E);d.appendChild(g);l.appendChild(d);
+f.appendChild(l);mxEvent.addListener(n,"change",b);b();mxEvent.addListener(p,"change",function(){x=!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(k*a)):(p.value="100",r.value=h,u.value=k);c()});mxEvent.addListener(r,"change",function(){var a=parseInt(r.value)/h;0<a?(p.value=parseFloat((100*a).toFixed(2)),u.value=Math.floor(k*a)):(p.value="100",r.value=h,u.value=k);c()});mxEvent.addListener(u,"change",function(){var a=
+parseInt(u.value)/k;0<a?(p.value=parseFloat((100*a).toFixed(2)),r.value=Math.floor(h*a)):(p.value="100",r.value=h,u.value=k);c()});d=document.createElement("tr");g=document.createElement("td");g.setAttribute("align","right");g.style.paddingTop="22px";g.colSpan=2;var I=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(){if(0>=parseInt(p.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var b=m.value,c=n.value,d=Math.max(0,parseFloat(p.value)||100)/100,f=Math.max(0,parseInt(E.value)),
+g=e.background,h=Math.max(1,parseInt(t.value));if(("svg"==c||"png"==c||"pdf"==c)&&w.checked)g=null;else if(null==g||g==mxConstants.NONE)g="#ffffff";ExportDialog.lastBorderValue=f;ExportDialog.exportFile(a,b,c,g,d,f,h,y.checked)}}));I.className="geBtn gePrimaryBtn";var B=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});B.className="geBtn";a.editor.cancelFirst?(g.appendChild(B),g.appendChild(I)):(g.appendChild(I),g.appendChild(B));d.appendChild(g);l.appendChild(d);f.appendChild(l);
this.container=f};ExportDialog.lastBorderValue=0;ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0;
-ExportDialog.exportFile=function(a,b,c,e,d,f,h,k){k=a.editor.graph;if("xml"==c)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),b,c);else if("svg"==c)ExportDialog.saveLocalFile(a,mxUtils.getXml(k.getSvg(e,d,f)),b,c);else{var g=k.getGraphBounds(),m=mxUtils.createXmlDocument(),l=m.createElement("output");m.appendChild(l);m=new mxXmlCanvas2D(l);m.translate(Math.floor((f/d-g.x)/k.view.scale),Math.floor((f/d-g.y)/k.view.scale));m.scale(d/k.view.scale);(new mxImageExport).drawState(k.getView().getState(k.model.root),
-m);l="xml="+encodeURIComponent(mxUtils.getXml(l));m=Math.ceil(g.width*d/k.view.scale+2*f);d=Math.ceil(g.height*d/k.view.scale+2*f);l.length<=MAX_REQUEST_SIZE&&m*d<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+c+"&filename="+encodeURIComponent(b)+"&bg="+(null!=e?e:"none")+"&w="+m+"&h="+d+"&"+l+"&dpi="+h)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
+ExportDialog.exportFile=function(a,b,c,e,d,f,h,k){k=a.editor.graph;if("xml"==c)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),b,c);else if("svg"==c)ExportDialog.saveLocalFile(a,mxUtils.getXml(k.getSvg(e,d,f)),b,c);else{var g=k.getGraphBounds(),l=mxUtils.createXmlDocument(),m=l.createElement("output");l.appendChild(m);l=new mxXmlCanvas2D(m);l.translate(Math.floor((f/d-g.x)/k.view.scale),Math.floor((f/d-g.y)/k.view.scale));l.scale(d/k.view.scale);(new mxImageExport).drawState(k.getView().getState(k.model.root),
+l);m="xml="+encodeURIComponent(mxUtils.getXml(m));l=Math.ceil(g.width*d/k.view.scale+2*f);d=Math.ceil(g.height*d/k.view.scale+2*f);m.length<=MAX_REQUEST_SIZE&&l*d<MAX_AREA?(a.hideDialog(),(new mxXmlRequest(EXPORT_URL,"format="+c+"&filename="+encodeURIComponent(b)+"&bg="+(null!=e?e:"none")+"&w="+l+"&h="+d+"&"+m+"&dpi="+h)).simulate(document,"_blank")):mxUtils.alert(mxResources.get("drawingTooLarge"))}};
ExportDialog.saveLocalFile=function(a,b,c,e){b.length<MAX_REQUEST_SIZE?(a.hideDialog(),(new mxXmlRequest(SAVE_URL,"xml="+encodeURIComponent(b)+"&filename="+encodeURIComponent(c)+"&format="+e)).simulate(document,"_blank")):(mxUtils.alert(mxResources.get("drawingTooLarge")),mxUtils.popup(xml))};
-var EditDataDialog=function(a,b){function c(){0<y.value.length?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")}var e=document.createElement("div"),d=a.editor.graph,f=d.getModel().getValue(b);if(!mxUtils.isNode(f)){var h=mxUtils.createXmlDocument().createElement("object");h.setAttribute("label",f||"");f=h}var k={};try{var g=mxUtils.getValue(a.editor.graph.getCurrentCellStyle(b),"metaData",null);null!=g&&(k=JSON.parse(g))}catch(B){}var m=new mxForm("properties");m.table.style.width=
-"100%";for(var l=f.attributes,n=[],p=[],r=0,u=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,b):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;m.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]=m.addTextarea(n[r]+":",c,
-2);p[a].style.width="100%";0<c.indexOf("\n")&&p[a].setAttribute("rows","2");v(p[a],b);null!=k[b]&&0==k[b].editable&&p[a].setAttribute("disabled","disabled")},g=[],t=d.getModel().getParent(b)==d.getModel().getRoot(),x=0;x<l.length;x++)!t&&"label"==l[x].nodeName||"placeholders"==l[x].nodeName||g.push({name:l[x].nodeName,value:l[x].nodeValue});g.sort(function(a,b){return a.name<b.name?-1:a.name>b.name?1:0});if(null!=u){l=document.createElement("div");l.style.width="100%";l.style.fontSize="11px";l.style.textAlign=
-"center";mxUtils.write(l,u);var w=m.addField(mxResources.get("id")+":",l);mxEvent.addListener(l,"dblclick",function(c){mxEvent.isShiftDown(c)&&(c=new FilenameDialog(a,u,mxResources.get("apply"),mxUtils.bind(this,function(c){null!=c&&0<c.length&&c!=u&&(null==d.getModel().getCell(c)?(d.getModel().cellRemoved(b),b.setId(c),u=c,w.innerHTML=mxUtils.htmlEntities(c),d.getModel().cellAdded(b)):a.handleError({message:mxResources.get("alreadyExst",[c])}))}),mxResources.get("id")),a.showDialog(c.container,300,
-80,!0,!0),c.init())});l.setAttribute("title","Shift+Double Click to Edit ID")}for(x=0;x<g.length;x++)h(r,g[x].name,g[x].value),r++;g=document.createElement("div");g.style.position="absolute";g.style.top="30px";g.style.left="30px";g.style.right="30px";g.style.bottom="80px";g.style.overflowY="auto";g.appendChild(m.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 y=document.createElement("input");
+var EditDataDialog=function(a,b){function c(){0<y.value.length?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")}var e=document.createElement("div"),d=a.editor.graph,f=d.getModel().getValue(b);if(!mxUtils.isNode(f)){var h=mxUtils.createXmlDocument().createElement("object");h.setAttribute("label",f||"");f=h}var k={};try{var g=mxUtils.getValue(a.editor.graph.getCurrentCellStyle(b),"metaData",null);null!=g&&(k=JSON.parse(g))}catch(B){}var l=new mxForm("properties");l.table.style.width=
+"100%";for(var m=f.attributes,n=[],p=[],r=0,u=null!=EditDataDialog.getDisplayIdForCell?EditDataDialog.getDisplayIdForCell(a,b):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!=k[b]&&0==k[b].editable&&p[a].setAttribute("disabled","disabled")},g=[],t=d.getModel().getParent(b)==d.getModel().getRoot(),x=0;x<m.length;x++)!t&&"label"==m[x].nodeName||"placeholders"==m[x].nodeName||g.push({name:m[x].nodeName,value:m[x].nodeValue});g.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 w=l.addField(mxResources.get("id")+":",m);mxEvent.addListener(m,"dblclick",function(c){mxEvent.isShiftDown(c)&&(c=new FilenameDialog(a,u,mxResources.get("apply"),mxUtils.bind(this,function(c){null!=c&&0<c.length&&c!=u&&(null==d.getModel().getCell(c)?(d.getModel().cellRemoved(b),b.setId(c),u=c,w.innerHTML=mxUtils.htmlEntities(c),d.getModel().cellAdded(b)):a.handleError({message:mxResources.get("alreadyExst",[c])}))}),mxResources.get("id")),a.showDialog(c.container,300,
+80,!0,!0),c.init())});m.setAttribute("title","Shift+Double Click to Edit ID")}for(x=0;x<g.length;x++)h(r,g[x].name,g[x].value),r++;g=document.createElement("div");g.style.position="absolute";g.style.top="30px";g.style.left="30px";g.style.right="30px";g.style.bottom="80px";g.style.overflowY="auto";g.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 y=document.createElement("input");
y.setAttribute("placeholder",mxResources.get("enterPropertyName"));y.setAttribute("type","text");y.setAttribute("size",mxClient.IS_IE||mxClient.IS_IE11?"36":"40");y.style.boxSizing="border-box";y.style.marginLeft="2px";y.style.width="100%";h.appendChild(y);g.appendChild(h);e.appendChild(g);var E=mxUtils.button(mxResources.get("addProperty"),function(){var a=y.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{f.cloneNode(!1).setAttribute(a,
-"");0<=b&&(n.splice(b,1),p.splice(b,1));n.push(a);var c=m.addTextarea(a+":","",2);c.style.width="100%";p.push(c);v(c,a);c.focus()}E.setAttribute("disabled","disabled");y.value=""}catch(F){mxUtils.alert(F)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(y,"keypress",function(a){13==a.keyCode&&E.click()});this.init=function(){0<p.length?p[0].focus():y.focus()};E.setAttribute("title",mxResources.get("addProperty"));E.setAttribute("disabled","disabled");E.style.textOverflow="ellipsis";
+"");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");y.value=""}catch(F){mxUtils.alert(F)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(y,"keypress",function(a){13==a.keyCode&&E.click()});this.init=function(){0<p.length?p[0].focus():y.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);g=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog.apply(a,arguments)});g.setAttribute("title","Escape");g.className="geBtn";var I=mxUtils.button(mxResources.get("apply"),function(){try{a.hideDialog.apply(a,arguments);f=f.cloneNode(!0);for(var c=!1,e=0;e<n.length;e++)null==p[e]?f.removeAttribute(n[e]):(f.setAttribute(n[e],p[e].value),c=c||"placeholder"==
n[e]&&"1"==f.getAttribute("placeholders"));c&&f.removeAttribute("label");d.getModel().setValue(b,f)}catch(z){mxUtils.alert(z)}});I.setAttribute("title","Ctrl+Enter");I.className="geBtn gePrimaryBtn";mxEvent.addListener(e,"keypress",function(a){13==a.keyCode&&mxEvent.isControlDown(a)&&I.click()});mxEvent.addListener(y,"keyup",c);mxEvent.addListener(y,"change",c);h=document.createElement("div");h.style.cssText="position:absolute;left:30px;right:30px;text-align:right;bottom:30px;height:40px;";if(a.editor.graph.getModel().isVertex(b)||
-a.editor.graph.getModel().isEdge(b))l=document.createElement("span"),l.style.marginRight="10px",t=document.createElement("input"),t.setAttribute("type","checkbox"),t.style.marginRight="6px","1"==f.getAttribute("placeholders")&&(t.setAttribute("checked","checked"),t.defaultChecked=!0),mxEvent.addListener(t,"click",function(){"1"==f.getAttribute("placeholders")?f.removeAttribute("placeholders"):f.setAttribute("placeholders","1")}),l.appendChild(t),mxUtils.write(l,mxResources.get("placeholders")),null!=
+a.editor.graph.getModel().isEdge(b))m=document.createElement("span"),m.style.marginRight="10px",t=document.createElement("input"),t.setAttribute("type","checkbox"),t.style.marginRight="6px","1"==f.getAttribute("placeholders")&&(t.setAttribute("checked","checked"),t.defaultChecked=!0),mxEvent.addListener(t,"click",function(){"1"==f.getAttribute("placeholders")?f.removeAttribute("placeholders"):f.setAttribute("placeholders","1")}),m.appendChild(t),mxUtils.write(m,mxResources.get("placeholders")),null!=
EditDataDialog.placeholderHelpLink&&(t=document.createElement("a"),t.setAttribute("href",EditDataDialog.placeholderHelpLink),t.setAttribute("title",mxResources.get("help")),t.setAttribute("target","_blank"),t.style.marginLeft="8px",t.style.cursor="help",x=document.createElement("img"),mxUtils.setOpacity(x,50),x.style.height="16px",x.style.width="16px",x.setAttribute("border","0"),x.setAttribute("valign","middle"),x.style.marginTop=mxClient.IS_IE11?"0px":"-4px",x.setAttribute("src",Editor.helpImage),
-t.appendChild(x),l.appendChild(t)),h.appendChild(l);a.editor.cancelFirst?(h.appendChild(g),h.appendChild(I)):(h.appendChild(I),h.appendChild(g));e.appendChild(h);this.container=e};EditDataDialog.getDisplayIdForCell=function(a,b){var c=null;null!=a.editor.graph.getModel().getParent(b)&&(c=b.getId());return c};EditDataDialog.placeholderHelpLink=null;
+t.appendChild(x),m.appendChild(t)),h.appendChild(m);a.editor.cancelFirst?(h.appendChild(g),h.appendChild(I)):(h.appendChild(I),h.appendChild(g));e.appendChild(h);this.container=e};EditDataDialog.getDisplayIdForCell=function(a,b){var c=null;null!=a.editor.graph.getModel().getParent(b)&&(c=b.getId());return c};EditDataDialog.placeholderHelpLink=null;
var LinkDialog=function(a,b,c,e){var d=document.createElement("div");mxUtils.write(d,mxResources.get("editLink")+":");var f=document.createElement("div");f.className="geTitle";f.style.backgroundColor="transparent";f.style.borderColor="transparent";f.style.whiteSpace="nowrap";f.style.textOverflow="clip";f.style.cursor="default";f.style.paddingRight="20px";var h=document.createElement("input");h.setAttribute("value",b);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";b=document.createElement("div");b.setAttribute("title",mxResources.get("reset"));b.style.position="relative";b.style.left="-16px";b.style.width="12px";b.style.height="14px";b.style.cursor="pointer";b.style.display="inline-block";b.style.top="3px";b.style.background="url("+IMAGE_PATH+"/transparent.gif)";
mxEvent.addListener(b,"click",function(){h.value="";h.focus()});f.appendChild(h);f.appendChild(b);d.appendChild(f);this.init=function(){h.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?h.select():document.execCommand("selectAll",!1,null)};f=document.createElement("div");f.style.marginTop="18px";f.style.textAlign="right";mxEvent.addListener(h,"keypress",function(b){13==b.keyCode&&(a.hideDialog(),e(h.value))});b=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});
@@ -3752,16 +3754,16 @@ b);k.style.display="block";k.style.whiteSpace="nowrap";k.style.overflow="hidden"
"6px",0<a&&(h=document.createElement("a"),h.setAttribute("title",mxResources.get("toBack")),h.className="geButton",h.style.cssFloat="none",h.innerHTML="&#9660;",h.style.width="14px",h.style.height="14px",h.style.fontSize="14px",h.style.margin="0px",h.style.marginTop="-1px",b.appendChild(h),mxEvent.addListener(h,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a-1);mxEvent.consume(b)})),0<=a&&a<u-1&&(h=document.createElement("a"),h.setAttribute("title",mxResources.get("toFront")),h.className=
"geButton",h.style.cssFloat="none",h.innerHTML="&#9650;",h.style.width="14px",h.style.height="14px",h.style.fontSize="14px",h.style.margin="0px",h.style.marginTop="-1px",b.appendChild(h),mxEvent.addListener(h,"click",function(b){g.isEnabled()&&g.addCell(c,g.model.root,a+1);mxEvent.consume(b)})),e.appendChild(b);mxClient.IS_SVG&&(!mxClient.IS_IE||10<=document.documentMode)&&(e.setAttribute("draggable","true"),e.style.cursor="move")}mxEvent.addListener(e,"dblclick",function(a){var b=mxEvent.getSource(a).nodeName;
"INPUT"!=b&&"IMG"!=b&&(f(c),mxEvent.consume(a))});g.getDefaultParent()==c&&(e.style.background=Editor.isDarkMode()?"#505759":"#e6eff8",e.style.fontWeight=g.isEnabled()?"bold":"",v=c);mxEvent.addListener(e,"click",function(a){g.isEnabled()&&(g.setDefaultParent(d),g.view.setCurrentRoot(null),mxEvent.isShiftDown(a)&&g.setSelectionCells(c.children),mxEvent.consume(a))});n.appendChild(e)}u=g.model.getChildCount(g.model.root);n.innerHTML="";B.clear();for(var b=u-1;0<=b;b--)mxUtils.bind(this,function(c){a(b,
-g.convertValueToString(c)||mxResources.get("background"),c,c)})(g.model.getChildAt(g.model.root,b));var c=g.convertValueToString(v)||mxResources.get("background");w.setAttribute("title",mxResources.get("removeIt",[c]));I.setAttribute("title",mxResources.get("duplicateIt",[c]));g.isSelectionEmpty()&&(y.className="geButton mxDisabled");h()}var g=a.editor.graph,m=document.createElement("div");m.style.userSelect="none";m.style.background=Editor.isDarkMode()?Dialog.backdropColor:"#fff";m.style.border=
-"1px solid whiteSmoke";m.style.height="100%";m.style.marginBottom="10px";m.style.overflow="auto";var l=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(l)+7+"px";m.appendChild(n);var p=null,r=null;mxEvent.addListener(m,"dragover",function(a){a.dataTransfer.dropEffect="move";r=0;a.stopPropagation();
-a.preventDefault()});mxEvent.addListener(m,"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=l;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";var x=document.createElement("a");x.className="geButton";var w=x.cloneNode(!1),l=document.createElement("img");l.setAttribute("border","0");l.setAttribute("width","22");l.setAttribute("src",Editor.trashImage);l.style.opacity="0.9";Editor.isDarkMode()&&(l.style.filter="invert(100%)");w.appendChild(l);mxEvent.addListener(w,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.model.root.getIndex(v);
-g.removeCells([v],!1);0==g.model.getChildCount(g.model.root)?(g.model.add(g.model.root,new mxCell),g.setDefaultParent(null)):0<b&&b<=g.model.getChildCount(g.model.root)?g.setDefaultParent(g.model.getChildAt(g.model.root,b-1)):g.setDefaultParent(null)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(w.className="geButton mxDisabled");t.appendChild(w);var y=x.cloneNode();y.setAttribute("title",mxUtils.trim(mxResources.get("moveSelectionTo",["..."])));l=l.cloneNode(!1);l.setAttribute("src",
-Editor.verticalDotsImage);y.appendChild(l);mxEvent.addListener(y,"click",function(b){if(g.isEnabled()&&!g.isSelectionEmpty()){var c=mxUtils.getOffset(y);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(g.convertValueToString(c)||mxResources.get("background"),null,mxUtils.bind(this,function(){g.moveCells(g.getSelectionCells(),0,0,!1,c)}),b);1==g.getSelectionCount()&&g.model.isAncestor(c,g.getSelectionCell())&&a.addCheckmark(d,Editor.checkmarkImage)})(g.model.getChildAt(g.model.root,
-c))}),c.x,c.y+y.offsetHeight,b)}});t.appendChild(y);var E=x.cloneNode(!1);E.setAttribute("title",mxResources.get("editData"));l=l.cloneNode(!1);l.setAttribute("src",Editor.editImage);E.appendChild(l);mxEvent.addListener(E,"click",function(b){g.isEnabled()&&a.showDataDialog(v);mxEvent.consume(b)});g.isEnabled()||(E.className="geButton mxDisabled");t.appendChild(E);var I=x.cloneNode(!1);I.setAttribute("title",mxResources.get("duplicate"));l=l.cloneNode(!1);l.setAttribute("src",Editor.duplicateImage);
-I.appendChild(l);mxEvent.addListener(I,"click",function(a){if(g.isEnabled()){a=null;g.model.beginUpdate();try{a=g.cloneCell(v),g.cellLabelChanged(a,mxResources.get("untitledLayer")),a.setVisible(!0),a=g.addCell(a,g.model.root),g.setDefaultParent(a)}finally{g.model.endUpdate()}null==a||g.isCellLocked(a)||g.selectAll(a)}});g.isEnabled()||(I.className="geButton mxDisabled");t.appendChild(I);x=x.cloneNode(!1);x.setAttribute("title",mxResources.get("addLayer"));l=l.cloneNode(!1);l.setAttribute("src",Editor.addImage);
-x.appendChild(l);mxEvent.addListener(x,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.addCell(new mxCell(mxResources.get("untitledLayer")),g.model.root);g.setDefaultParent(b)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(x.className="geButton mxDisabled");t.appendChild(x);m.appendChild(t);var B=new mxDictionary,G=document.createElement("span");G.setAttribute("title",mxResources.get("selectionOnly"));G.innerHTML="&#8226;";G.style.position="absolute";G.style.fontWeight=
-"bold";G.style.fontSize="16pt";G.style.right="2px";G.style.top="2px";k();g.model.addListener(mxEvent.CHANGE,k);g.addListener("defaultParentChanged",k);g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?y.className="geButton mxDisabled":y.className="geButton";h()});this.window=new mxWindow(mxResources.get("layers"),m,b,c,e,d,!0,!0);this.window.minimumSize=new mxRectangle(0,0,150,120);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);
+g.convertValueToString(c)||mxResources.get("background"),c,c)})(g.model.getChildAt(g.model.root,b));var c=g.convertValueToString(v)||mxResources.get("background");w.setAttribute("title",mxResources.get("removeIt",[c]));I.setAttribute("title",mxResources.get("duplicateIt",[c]));g.isSelectionEmpty()&&(y.className="geButton mxDisabled");h()}var g=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";var x=document.createElement("a");x.className="geButton";var w=x.cloneNode(!1),m=document.createElement("img");m.setAttribute("border","0");m.setAttribute("width","22");m.setAttribute("src",Editor.trashImage);m.style.opacity="0.9";Editor.isDarkMode()&&(m.style.filter="invert(100%)");w.appendChild(m);mxEvent.addListener(w,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.model.root.getIndex(v);
+g.removeCells([v],!1);0==g.model.getChildCount(g.model.root)?(g.model.add(g.model.root,new mxCell),g.setDefaultParent(null)):0<b&&b<=g.model.getChildCount(g.model.root)?g.setDefaultParent(g.model.getChildAt(g.model.root,b-1)):g.setDefaultParent(null)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(w.className="geButton mxDisabled");t.appendChild(w);var y=x.cloneNode();y.setAttribute("title",mxUtils.trim(mxResources.get("moveSelectionTo",["..."])));m=m.cloneNode(!1);m.setAttribute("src",
+Editor.verticalDotsImage);y.appendChild(m);mxEvent.addListener(y,"click",function(b){if(g.isEnabled()&&!g.isSelectionEmpty()){var c=mxUtils.getOffset(y);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(g.convertValueToString(c)||mxResources.get("background"),null,mxUtils.bind(this,function(){g.moveCells(g.getSelectionCells(),0,0,!1,c)}),b);1==g.getSelectionCount()&&g.model.isAncestor(c,g.getSelectionCell())&&a.addCheckmark(d,Editor.checkmarkImage)})(g.model.getChildAt(g.model.root,
+c))}),c.x,c.y+y.offsetHeight,b)}});t.appendChild(y);var E=x.cloneNode(!1);E.setAttribute("title",mxResources.get("editData"));m=m.cloneNode(!1);m.setAttribute("src",Editor.editImage);E.appendChild(m);mxEvent.addListener(E,"click",function(b){g.isEnabled()&&a.showDataDialog(v);mxEvent.consume(b)});g.isEnabled()||(E.className="geButton mxDisabled");t.appendChild(E);var I=x.cloneNode(!1);I.setAttribute("title",mxResources.get("duplicate"));m=m.cloneNode(!1);m.setAttribute("src",Editor.duplicateImage);
+I.appendChild(m);mxEvent.addListener(I,"click",function(a){if(g.isEnabled()){a=null;g.model.beginUpdate();try{a=g.cloneCell(v),g.cellLabelChanged(a,mxResources.get("untitledLayer")),a.setVisible(!0),a=g.addCell(a,g.model.root),g.setDefaultParent(a)}finally{g.model.endUpdate()}null==a||g.isCellLocked(a)||g.selectAll(a)}});g.isEnabled()||(I.className="geButton mxDisabled");t.appendChild(I);x=x.cloneNode(!1);x.setAttribute("title",mxResources.get("addLayer"));m=m.cloneNode(!1);m.setAttribute("src",Editor.addImage);
+x.appendChild(m);mxEvent.addListener(x,"click",function(a){if(g.isEnabled()){g.model.beginUpdate();try{var b=g.addCell(new mxCell(mxResources.get("untitledLayer")),g.model.root);g.setDefaultParent(b)}finally{g.model.endUpdate()}}mxEvent.consume(a)});g.isEnabled()||(x.className="geButton mxDisabled");t.appendChild(x);l.appendChild(t);var B=new mxDictionary,G=document.createElement("span");G.setAttribute("title",mxResources.get("selectionOnly"));G.innerHTML="&#8226;";G.style.position="absolute";G.style.fontWeight=
+"bold";G.style.fontSize="16pt";G.style.right="2px";G.style.top="2px";k();g.model.addListener(mxEvent.CHANGE,k);g.addListener("defaultParentChanged",k);g.selectionModel.addListener(mxEvent.CHANGE,function(){g.isSelectionEmpty()?y.className="geButton mxDisabled":y.className="geButton";h()});this.window=new mxWindow(mxResources.get("layers"),l,b,c,e,d,!0,!0);this.window.minimumSize=new mxRectangle(0,0,150,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=k;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 z=mxUtils.bind(this,function(){var a=this.window.getX(),b=this.window.getY();this.window.setLocation(a,b)});mxEvent.addListener(window,"resize",z);this.destroy=function(){mxEvent.removeListener(window,"resize",z);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";
@@ -10115,8 +10117,8 @@ RemoteLibrary.prototype.saveAs=function(b,e,d){};RemoteLibrary.prototype.updateF
var StorageDialog=function(b,e,d){function c(c,g,k,p,x,A){function q(){mxEvent.addListener(t,"click",null!=A?A:function(){k!=App.MODE_GOOGLE||b.isDriveDomain()?k==App.MODE_GOOGLE&&b.spinner.spin(document.body,mxResources.get("authorizing"))?b.drive.checkToken(mxUtils.bind(this,function(){b.spinner.stop();b.setMode(k,!0);e()})):k==App.MODE_ONEDRIVE&&b.spinner.spin(document.body,mxResources.get("authorizing"))?b.oneDrive.checkToken(mxUtils.bind(this,function(){b.spinner.stop();b.setMode(k,!0);e()})):
(b.setMode(k,!0),e()):window.location.hostname=DriveClient.prototype.newAppHostname})}f++;++n>d&&(mxUtils.br(l),n=1);var t=document.createElement("a");t.style.overflow="hidden";t.style.display="inline-block";t.className="geBaseButton";t.style.boxSizing="border-box";t.style.fontSize="11px";t.style.position="relative";t.style.margin="4px";t.style.marginTop="8px";t.style.marginBottom="0px";t.style.padding="8px 10px 8px 10px";t.style.width="88px";t.style.height="100px";t.style.whiteSpace="nowrap";t.setAttribute("title",
g);var y=document.createElement("div");y.style.textOverflow="ellipsis";y.style.overflow="hidden";y.style.position="absolute";y.style.bottom="8px";y.style.left="0px";y.style.right="0px";mxUtils.write(y,g);t.appendChild(y);if(null!=c){var u=document.createElement("img");u.setAttribute("src",c);u.setAttribute("border","0");u.setAttribute("align","absmiddle");u.style.width="60px";u.style.height="60px";u.style.paddingBottom="6px";t.appendChild(u)}else y.style.paddingTop="5px",y.style.whiteSpace="normal",
-mxClient.IS_IOS?(t.style.padding="0px 10px 20px 10px",t.style.top="6px"):mxClient.IS_FF&&(y.style.paddingTop="0px",y.style.marginTop="-2px");if(null!=x)for(c=0;c<x.length;c++)mxUtils.br(y),mxUtils.write(y,x[c]);if(null!=p&&null==b[p]){u.style.visibility="hidden";mxUtils.setOpacity(y,10);var v=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});v.spin(t);var F=window.setTimeout(function(){null==
-b[p]&&(v.stop(),t.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(c,f){null!=b[p]&&f.getProperty("client")==b[p]&&(window.clearTimeout(F),mxUtils.setOpacity(y,100),u.style.visibility="",v.stop(),q(),"drive"==p&&null!=m.parentNode&&m.parentNode.removeChild(m))}))}else q();l.appendChild(t)}d=null!=d?d:2;var g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace="nowrap";g.style.paddingTop="0px";g.style.paddingBottom="20px";var k=document.createElement("div");
+mxClient.IS_IOS?(t.style.padding="0px 10px 20px 10px",t.style.top="6px"):mxClient.IS_FF&&(y.style.paddingTop="0px",y.style.marginTop="-2px");if(null!=x)for(c=0;c<x.length;c++)mxUtils.br(y),mxUtils.write(y,x[c]);if(null!=p&&null==b[p]){u.style.visibility="hidden";mxUtils.setOpacity(y,10);var v=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});v.spin(t);var G=window.setTimeout(function(){null==
+b[p]&&(v.stop(),t.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(c,f){null!=b[p]&&f.getProperty("client")==b[p]&&(window.clearTimeout(G),mxUtils.setOpacity(y,100),u.style.visibility="",v.stop(),q(),"drive"==p&&null!=m.parentNode&&m.parentNode.removeChild(m))}))}else q();l.appendChild(t)}d=null!=d?d:2;var g=document.createElement("div");g.style.textAlign="center";g.style.whiteSpace="nowrap";g.style.paddingTop="0px";g.style.paddingBottom="20px";var k=document.createElement("div");
k.style.border="1px solid #d3d3d3";k.style.borderWidth="1px 0px 1px 0px";k.style.padding="10px 0px 20px 0px";var n=0,f=0,l=document.createElement("div");l.style.paddingTop="2px";k.appendChild(l);var m=document.createElement("p"),p=document.createElement("p");p.style.cssText="font-size:22px;padding:4px 0 16px 0;margin:0;color:gray;";mxUtils.write(p,mxResources.get("saveDiagramsTo")+":");g.appendChild(p);g.appendChild(k);n=0;"function"===typeof window.DriveClient&&c(IMAGE_PATH+"/google-drive-logo.svg",
mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive");"function"===typeof window.OneDriveClient&&c(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive");"1"!=urlParams.noDevice&&c(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);!isLocalStorage||"1"!=urlParams.browser&&"1"!=urlParams.offline||c(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER);"function"===typeof window.DropboxClient&&c(IMAGE_PATH+"/dropbox-logo.svg",
mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox");null!=b.gitHub&&c(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub");null!=b.gitLab&&c(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab");6>f&&null!=b.notion&&c(IMAGE_PATH+"/notion-logo.svg",mxResources.get("notion"),App.MODE_NOTION,"notion");k=document.createElement("span");k.style.cssText="position:absolute;cursor:pointer;bottom:27px;color:gray;userSelect:none;text-align:center;left:50%;";
@@ -10142,15 +10144,15 @@ e.length){var t=mxUtils.button("",function(){try{var c="https://www.facebook.com
"bottom";t.style.paddingTop="4px";t.style.minWidth="46px";t.className="geBtn";k.appendChild(t)}7168>e.length&&(t=mxUtils.button("",function(){try{var c="https://twitter.com/intent/tweet?text="+encodeURIComponent(n)+"&url="+encodeURIComponent(p.value);b.openLink(c)}catch(v){b.handleError({message:v.message||mxResources.get("drawingTooLarge")})}}),f=document.createElement("img"),f.setAttribute("src",Editor.tweetImage),f.setAttribute("width","18"),f.setAttribute("height","18"),f.setAttribute("border",
"0"),f.style.marginBottom="5px",t.appendChild(f),t.setAttribute("title",mxResources.get("twitter")+" ("+b.formatFileSize(7168)+" max)"),t.style.verticalAlign="bottom",t.style.paddingTop="4px",t.style.minWidth="46px",t.className="geBtn",k.appendChild(t))}f=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});k.appendChild(f);t=mxUtils.button(mxResources.get("copy"),function(){p.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",
!1,null);document.execCommand("copy");b.alert(mxResources.get("copiedToClipboard"))});5E5>e.length?mxClient.IS_SF||null!=document.documentMode?f.className="geBtn gePrimaryBtn":(k.appendChild(t),t.className="geBtn gePrimaryBtn",f.className="geBtn"):(k.appendChild(q),f.className="geBtn",q.className="geBtn gePrimaryBtn");c.appendChild(k);this.container=c};EmbedDialog.showPreviewOption=!0;
-var GoogleSitesDialog=function(b,e){function d(){var b=null!=F&&null!=F.getTitle()?F.getTitle():this.defaultFilename;if(C.checked&&""!=t.value){var c="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(t.value));null!=b&&(c+="&title="+encodeURIComponent(b));0<G.length&&(c+="&s="+G);""!=u.value&&"0"!=u.value&&(c+="&border="+u.value);""!=q.value&&(c+="&height="+q.value);c+="&pan="+(v.checked?"1":"0");c+="&zoom="+(x.checked?"1":"0");c+="&fit="+(y.checked?"1":"0");
-c+="&resize="+(B.checked?"1":"0");c+="&x0="+Number(p.value);c+="&y0="+l;g.mathEnabled&&(c+="&math=1");z.checked?c+="&edit=_blank":A.checked&&(c+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));m.value=c}else F.constructor==DriveFile||F.constructor==DropboxFile?(c="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=t.value?c+=encodeURIComponent(mxUtils.htmlEntities(t.value))+"&type=3":(c+=F.getHash().substring(1),c=F.constructor==DropboxFile?c+"&type=2":c+"&type=1"),null!=
+var GoogleSitesDialog=function(b,e){function d(){var b=null!=G&&null!=G.getTitle()?G.getTitle():this.defaultFilename;if(C.checked&&""!=t.value){var c="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(t.value));null!=b&&(c+="&title="+encodeURIComponent(b));0<D.length&&(c+="&s="+D);""!=u.value&&"0"!=u.value&&(c+="&border="+u.value);""!=q.value&&(c+="&height="+q.value);c+="&pan="+(v.checked?"1":"0");c+="&zoom="+(x.checked?"1":"0");c+="&fit="+(y.checked?"1":"0");
+c+="&resize="+(B.checked?"1":"0");c+="&x0="+Number(p.value);c+="&y0="+l;g.mathEnabled&&(c+="&math=1");z.checked?c+="&edit=_blank":A.checked&&(c+="&edit="+encodeURIComponent(mxUtils.htmlEntities(window.location.href)));m.value=c}else G.constructor==DriveFile||G.constructor==DropboxFile?(c="https://www.draw.io/gadget.xml?embed=0&diagram=",""!=t.value?c+=encodeURIComponent(mxUtils.htmlEntities(t.value))+"&type=3":(c+=G.getHash().substring(1),c=G.constructor==DropboxFile?c+"&type=2":c+"&type=1"),null!=
b&&(c+="&title="+encodeURIComponent(b)),""!=q.value&&(b=parseInt(q.value)+parseInt(p.value),c+="&height="+b),m.value=c):m.value=""}var c=document.createElement("div"),g=b.editor.graph,k=g.getGraphBounds(),n=g.view.scale,f=Math.floor(k.x/n-g.view.translate.x),l=Math.floor(k.y/n-g.view.translate.y);mxUtils.write(c,mxResources.get("googleGadget")+":");mxUtils.br(c);var m=document.createElement("input");m.setAttribute("type","text");m.style.marginBottom="8px";m.style.marginTop="2px";m.style.width="410px";
c.appendChild(m);mxUtils.br(c);this.init=function(){m.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?m.select():document.execCommand("selectAll",!1,null)};mxUtils.write(c,mxResources.get("top")+":");var p=document.createElement("input");p.setAttribute("type","text");p.setAttribute("size","4");p.style.marginRight="16px";p.style.marginLeft="4px";p.value=f;c.appendChild(p);mxUtils.write(c,mxResources.get("height")+":");var q=document.createElement("input");q.setAttribute("type","text");
q.setAttribute("size","4");q.style.marginLeft="4px";q.value=Math.ceil(k.height/n);c.appendChild(q);mxUtils.br(c);k=document.createElement("hr");k.setAttribute("size","1");k.style.marginBottom="16px";k.style.marginTop="16px";c.appendChild(k);mxUtils.write(c,mxResources.get("publicDiagramUrl")+":");mxUtils.br(c);var t=document.createElement("input");t.setAttribute("type","text");t.setAttribute("size","28");t.style.marginBottom="8px";t.style.marginTop="2px";t.style.width="410px";t.value=e||"";c.appendChild(t);
mxUtils.br(c);mxUtils.write(c,mxResources.get("borderWidth")+":");var u=document.createElement("input");u.setAttribute("type","text");u.setAttribute("size","3");u.style.marginBottom="8px";u.style.marginLeft="4px";u.value="0";c.appendChild(u);mxUtils.br(c);var v=document.createElement("input");v.setAttribute("type","checkbox");v.setAttribute("checked","checked");v.defaultChecked=!0;v.style.marginLeft="16px";c.appendChild(v);mxUtils.write(c,mxResources.get("pan")+" ");var x=document.createElement("input");
x.setAttribute("type","checkbox");x.setAttribute("checked","checked");x.defaultChecked=!0;x.style.marginLeft="8px";c.appendChild(x);mxUtils.write(c,mxResources.get("zoom")+" ");var A=document.createElement("input");A.setAttribute("type","checkbox");A.style.marginLeft="8px";A.setAttribute("title",window.location.href);c.appendChild(A);mxUtils.write(c,mxResources.get("edit")+" ");var z=document.createElement("input");z.setAttribute("type","checkbox");z.style.marginLeft="8px";c.appendChild(z);mxUtils.write(c,
mxResources.get("asNew")+" ");mxUtils.br(c);var B=document.createElement("input");B.setAttribute("type","checkbox");B.setAttribute("checked","checked");B.defaultChecked=!0;B.style.marginLeft="16px";c.appendChild(B);mxUtils.write(c,mxResources.get("resize")+" ");var y=document.createElement("input");y.setAttribute("type","checkbox");y.style.marginLeft="8px";c.appendChild(y);mxUtils.write(c,mxResources.get("fit")+" ");var C=document.createElement("input");C.setAttribute("type","checkbox");C.style.marginLeft=
-"8px";c.appendChild(C);mxUtils.write(c,mxResources.get("embed")+" ");var G=b.getBasenames().join(";"),F=b.getCurrentFile();mxEvent.addListener(v,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(B,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(A,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(C,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(p,"change",d);mxEvent.addListener(u,"change",d);mxEvent.addListener(t,"change",d);d();
+"8px";c.appendChild(C);mxUtils.write(c,mxResources.get("embed")+" ");var D=b.getBasenames().join(";"),G=b.getCurrentFile();mxEvent.addListener(v,"change",d);mxEvent.addListener(x,"change",d);mxEvent.addListener(B,"change",d);mxEvent.addListener(y,"change",d);mxEvent.addListener(A,"change",d);mxEvent.addListener(z,"change",d);mxEvent.addListener(C,"change",d);mxEvent.addListener(q,"change",d);mxEvent.addListener(p,"change",d);mxEvent.addListener(u,"change",d);mxEvent.addListener(t,"change",d);d();
mxEvent.addListener(m,"click",function(){m.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?m.select():document.execCommand("selectAll",!1,null)});k=document.createElement("div");k.style.paddingTop="12px";k.style.textAlign="right";n=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});n.className="geBtn gePrimaryBtn";k.appendChild(n);c.appendChild(k);this.container=c},CreateGraphDialog=function(b,e,d){var c=document.createElement("div");c.style.textAlign="right";this.init=
function(){var e=document.createElement("div");e.style.position="relative";e.style.border="1px solid gray";e.style.width="100%";e.style.height="360px";e.style.overflow="hidden";e.style.marginBottom="16px";mxEvent.disableContextMenu(e);c.appendChild(e);var k=new Graph(e);k.setCellsCloneable(!0);k.setPanning(!0);k.setAllowDanglingEdges(!1);k.connectionHandler.select=!1;k.view.setTranslate(20,20);k.border=20;k.panningHandler.useLeftButtonForPanning=!0;var n="curved=1;";k.cellRenderer.installCellOverlayListeners=
function(b,c,f){mxCellRenderer.prototype.installCellOverlayListeners.apply(this,arguments);mxEvent.addListener(f.node,mxClient.IS_POINTER?"pointerdown":"mousedown",function(f){c.fireEvent(new mxEventObject("pointerdown","event",f,"state",b))});!mxClient.IS_POINTER&&mxClient.IS_TOUCH&&mxEvent.addListener(f.node,"touchstart",function(f){c.fireEvent(new mxEventObject("pointerdown","event",f,"state",b))})};k.getAllConnectionConstraints=function(){return null};k.connectionHandler.marker.highlight.keepOnTop=
@@ -10195,33 +10197,33 @@ mxUtils.write(l,mxResources.get("diagram"));"plantUml"!=d&&f.appendChild(l);l=do
"plantUmlTxt");mxUtils.write(p,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!b.isOffline()&&"plantUml"==d&&(f.appendChild(l),f.appendChild(m),f.appendChild(p));var q=g();n.value=q;e.appendChild(n);this.init=function(){n.focus()};Graph.fileSupport&&(n.addEventListener("dragover",function(b){b.stopPropagation();b.preventDefault()},!1),n.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(b){n.value=b.target.result};c.readAsText(b)}},!1));e.appendChild(f);mxEvent.addListener(f,"change",function(){var b=g();if(0==n.value.length||n.value==q)q=b,n.value=q});b.isOffline()||"mermaid"!=d&&"plantUml"!=d||(l=mxUtils.button(mxResources.get("help"),function(){b.openLink("mermaid"==d?"https://mermaid-js.github.io/mermaid/#/":"https://plantuml.com/")}),l.className="geBtn",e.appendChild(l));l=mxUtils.button(mxResources.get("close"),
function(){n.value==q?b.hideDialog():b.confirm(mxResources.get("areYouSure"),function(){b.hideDialog()})});l.className="geBtn";b.editor.cancelFirst&&e.appendChild(l);m=mxUtils.button(mxResources.get("insert"),function(d){b.hideDialog();c(n.value,f.value,d)});e.appendChild(m);m.className="geBtn gePrimaryBtn";b.editor.cancelFirst||e.appendChild(l);this.container=e},NewDialog=function(b,e,d,c,g,k,n,f,l,m,p,q,t,u,v,x,A,z){function B(b){null!=b&&(ra=X=b?135:140);b=!0;if(null!=ma)for(;M<ma.length&&(b||
-0!=mxUtils.mod(M,30));){var c=ma[M++],c=G(c.url,c.libs,c.title,c.tooltip?c.tooltip:c.title,c.select,c.imgUrl,c.info,c.onClick,c.preview,c.noImg,c.clibs);b&&c.click();b=!1}}function y(){if(pa&&null!=u)d||b.hideDialog(),u(pa,ca,L.value);else if(c)d||b.hideDialog(),c(ba,L.value,fa,ka);else{var f=L.value;null!=f&&0<f.length&&b.pickFolder(b.mode,function(c){b.createFile(f,ba,null!=ka&&0<ka.length?ka:null,null,function(){b.hideDialog()},null,c,null,null!=aa&&0<aa.length?aa:null)},b.mode!=App.MODE_GOOGLE||
-null==b.stateArg||null==b.stateArg.folderId)}}function C(b,c,d,e,m,g,p){null!=na&&(na.style.backgroundColor="transparent",na.style.border="1px solid transparent");O.removeAttribute("disabled");ba=c;ka=d;aa=g;na=b;pa=e;fa=p;ca=m;na.style.backgroundColor=f;na.style.border=l}function G(c,f,d,e,l,m,g,p,k,q,t){function n(c,f){if(null==B){var e=c,e=/^https?:\/\//.test(e)&&!b.editor.isCorsEnabledForUrl(e)?PROXY_URL+"?url="+encodeURIComponent(e):TEMPLATE_PATH+"/"+e;mxUtils.get(e,mxUtils.bind(this,function(b){200<=
+0!=mxUtils.mod(M,30));){var c=ma[M++],c=D(c.url,c.libs,c.title,c.tooltip?c.tooltip:c.title,c.select,c.imgUrl,c.info,c.onClick,c.preview,c.noImg,c.clibs);b&&c.click();b=!1}}function y(){if(pa&&null!=u)d||b.hideDialog(),u(pa,ca,L.value);else if(c)d||b.hideDialog(),c(ba,L.value,fa,ka);else{var f=L.value;null!=f&&0<f.length&&b.pickFolder(b.mode,function(c){b.createFile(f,ba,null!=ka&&0<ka.length?ka:null,null,function(){b.hideDialog()},null,c,null,null!=aa&&0<aa.length?aa:null)},b.mode!=App.MODE_GOOGLE||
+null==b.stateArg||null==b.stateArg.folderId)}}function C(b,c,d,e,m,g,p){null!=na&&(na.style.backgroundColor="transparent",na.style.border="1px solid transparent");P.removeAttribute("disabled");ba=c;ka=d;aa=g;na=b;pa=e;fa=p;ca=m;na.style.backgroundColor=f;na.style.border=l}function D(c,f,d,e,l,m,g,p,k,q,t){function n(c,f){if(null==B){var e=c,e=/^https?:\/\//.test(e)&&!b.editor.isCorsEnabledForUrl(e)?PROXY_URL+"?url="+encodeURIComponent(e):TEMPLATE_PATH+"/"+e;mxUtils.get(e,mxUtils.bind(this,function(b){200<=
b.getStatus()&&299>=b.getStatus()&&(B=b.getText());f(B)}))}else f(B)}function u(f,e,l){if(null!=f&&mxUtils.isAncestorNode(document.body,v)){f=mxUtils.parseXml(f);f=Editor.parseDiagramNode(f.documentElement);var m=new mxCodec(f.ownerDocument),p=new mxGraphModel;m.decode(f,p);f=p.root.getChildAt(0).children;b.sidebar.createTooltip(v,f,Math.min((window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-80,1E3),Math.min((window.innerHeight||document.documentElement.clientHeight||
-document.body.clientHeight)-80,800),null!=d?mxResources.get(d,null,d):null,!0,new mxPoint(e,l),!0,function(){P=null!=b.sidebar.tooltip&&"none"!=b.sidebar.tooltip.style.display;C(v,null,null,c,g,t)},!0,!1)}}function J(f,e){if(null==c||x||b.sidebar.currentElt==v)b.sidebar.hideTooltip();else if(b.sidebar.hideTooltip(),null!=A){var d='<mxfile><diagram id="d" name="n">'+Graph.compress('<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="2" value="" style="shape=image;image='+A.src+
+document.body.clientHeight)-80,800),null!=d?mxResources.get(d,null,d):null,!0,new mxPoint(e,l),!0,function(){E=null!=b.sidebar.tooltip&&"none"!=b.sidebar.tooltip.style.display;C(v,null,null,c,g,t)},!0,!1)}}function K(f,e){if(null==c||x||b.sidebar.currentElt==v)b.sidebar.hideTooltip();else if(b.sidebar.hideTooltip(),null!=A){var d='<mxfile><diagram id="d" name="n">'+Graph.compress('<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="2" value="" style="shape=image;image='+A.src+
';imageAspect=1;" parent="1" vertex="1"><mxGeometry width="'+A.naturalWidth+'" height="'+A.naturalHeight+'" as="geometry" /></mxCell></root></mxGraphModel>')+"</diagram></mxfile>";u(d,mxEvent.getClientX(f),mxEvent.getClientY(f))}else b.sidebar.currentElt=v,x=!0,n(c,function(c){x&&b.sidebar.currentElt==v&&u(c,mxEvent.getClientX(f),mxEvent.getClientY(f));x=!1})}var v=document.createElement("div");v.className="geTemplate";v.style.position="relative";v.style.height=ra+"px";v.style.width=X+"px";var B=
-null;Editor.isDarkMode()&&(v.style.filter="invert(100%)");null!=d?v.setAttribute("title",mxResources.get(d,null,d)):null!=e&&0<e.length&&v.setAttribute("title",e);var x=!1,A=null;if(null!=m){v.style.display="inline-flex";v.style.justifyContent="center";v.style.alignItems="center";l=document.createElement("img");l.setAttribute("src",m);l.setAttribute("alt",e);l.style.maxWidth=ra+"px";l.style.maxHeight=X+"px";var A=l,K=m.replace(".drawio.xml","").replace(".drawio","").replace(".xml","");v.appendChild(l);
-l.onerror=function(){this.src!=K?this.src=K:(this.src=Editor.errorImage,this.onerror=null)};mxEvent.addGestureListeners(v,mxUtils.bind(this,function(b){C(v,null,null,c,g,t)}),null,null);mxEvent.addListener(v,"dblclick",function(b){y();mxEvent.consume(b)})}else if(!q&&null!=c&&0<c.length){var E=function(b){O.setAttribute("disabled","disabled");v.style.backgroundColor="transparent";v.style.border="1px solid transparent";N.spin(Q);n(c,function(c){N.stop();null!=c&&(C(v,c,f,null,null,t,qa),b&&y())})};
+null;Editor.isDarkMode()&&(v.style.filter="invert(100%)");null!=d?v.setAttribute("title",mxResources.get(d,null,d)):null!=e&&0<e.length&&v.setAttribute("title",e);var x=!1,A=null;if(null!=m){v.style.display="inline-flex";v.style.justifyContent="center";v.style.alignItems="center";l=document.createElement("img");l.setAttribute("src",m);l.setAttribute("alt",e);l.style.maxWidth=ra+"px";l.style.maxHeight=X+"px";var A=l,J=m.replace(".drawio.xml","").replace(".drawio","").replace(".xml","");v.appendChild(l);
+l.onerror=function(){this.src!=J?this.src=J:(this.src=Editor.errorImage,this.onerror=null)};mxEvent.addGestureListeners(v,mxUtils.bind(this,function(b){C(v,null,null,c,g,t)}),null,null);mxEvent.addListener(v,"dblclick",function(b){y();mxEvent.consume(b)})}else if(!q&&null!=c&&0<c.length){var F=function(b){P.setAttribute("disabled","disabled");v.style.backgroundColor="transparent";v.style.border="1px solid transparent";N.spin(Q);n(c,function(c){N.stop();null!=c&&(C(v,c,f,null,null,t,qa),b&&y())})};
l=k||TEMPLATE_PATH+"/"+c.substring(0,c.length-4)+".png";v.style.backgroundImage="url("+l+")";v.style.backgroundPosition="center center";v.style.backgroundRepeat="no-repeat";if(null!=d){e=document.createElement("table");e.setAttribute("width","100%");e.setAttribute("height","100%");e.style.background=Editor.isDarkMode()?"transparent":"rgba(255,255,255,0.85)";e.style.lineHeight="1.3em";e.style.border="inherit";m=document.createElement("tbody");k=document.createElement("tr");q=document.createElement("td");
q.setAttribute("align","center");q.setAttribute("valign","middle");var T=document.createElement("span");T.style.display="inline-block";T.style.padding="4px 8px 4px 8px";T.style.userSelect="none";T.style.borderRadius="3px";T.style.background="rgba(255,255,255,0.85)";T.style.overflow="hidden";T.style.textOverflow="ellipsis";T.style.maxWidth=ra-34+"px";mxUtils.write(T,mxResources.get(d,null,d));q.appendChild(T);k.appendChild(q);m.appendChild(k);e.appendChild(m);v.appendChild(e)}mxEvent.addGestureListeners(v,
-mxUtils.bind(this,function(b){E()}),null,null);mxEvent.addListener(v,"dblclick",function(b){E(!0);mxEvent.consume(b)})}else e=document.createElement("table"),e.setAttribute("width","100%"),e.setAttribute("height","100%"),e.style.lineHeight="1.3em",m=document.createElement("tbody"),k=document.createElement("tr"),q=document.createElement("td"),q.setAttribute("align","center"),q.setAttribute("valign","middle"),T=document.createElement("span"),T.style.display="inline-block",T.style.padding="4px 8px 4px 8px",
+mxUtils.bind(this,function(b){F()}),null,null);mxEvent.addListener(v,"dblclick",function(b){F(!0);mxEvent.consume(b)})}else e=document.createElement("table"),e.setAttribute("width","100%"),e.setAttribute("height","100%"),e.style.lineHeight="1.3em",m=document.createElement("tbody"),k=document.createElement("tr"),q=document.createElement("td"),q.setAttribute("align","center"),q.setAttribute("valign","middle"),T=document.createElement("span"),T.style.display="inline-block",T.style.padding="4px 8px 4px 8px",
T.style.userSelect="none",T.style.borderRadius="3px",T.style.background="#ffffff",T.style.overflow="hidden",T.style.textOverflow="ellipsis",T.style.maxWidth=ra-34+"px",mxUtils.write(T,mxResources.get(d,null,d)),q.appendChild(T),k.appendChild(q),m.appendChild(k),e.appendChild(m),v.appendChild(e),l&&C(v),mxEvent.addGestureListeners(v,mxUtils.bind(this,function(b){C(v,null,null,c,g)}),null,null),null!=p?mxEvent.addListener(v,"click",p):(mxEvent.addListener(v,"click",function(b){C(v,null,null,c,g)}),
-mxEvent.addListener(v,"dblclick",function(b){y();mxEvent.consume(b)}));if(null!=c){var D=document.createElement("img");D.setAttribute("src",Sidebar.prototype.searchImage);D.setAttribute("title",mxResources.get("preview"));D.className="geActiveButton";D.style.position="absolute";D.style.cursor="default";D.style.padding="8px";D.style.right="0px";D.style.top="0px";v.appendChild(D);var P=!1;mxEvent.addGestureListeners(D,mxUtils.bind(this,function(c){P=b.sidebar.currentElt==v}),null,null);mxEvent.addListener(D,
-"click",mxUtils.bind(this,function(b){P||J(b,D);mxEvent.consume(b)}))}Q.appendChild(v);return v}function F(){function b(b,c){var f=mxResources.get(b);null==f&&(f=b.substring(0,1).toUpperCase()+b.substring(1));18<f.length&&(f=f.substring(0,18)+"&hellip;");return f+" ("+c.length+")"}function c(b,c,f){mxEvent.addListener(c,"click",function(){R!=c&&(R.style.backgroundColor="",R=c,R.style.backgroundColor=n,Q.scrollTop=0,Q.innerHTML="",M=0,ma=f?ga[b][f]:ea[b],T=null,B(!1))})}ua&&(ua=!1,mxEvent.addListener(Q,
+mxEvent.addListener(v,"dblclick",function(b){y();mxEvent.consume(b)}));if(null!=c){var O=document.createElement("img");O.setAttribute("src",Sidebar.prototype.searchImage);O.setAttribute("title",mxResources.get("preview"));O.className="geActiveButton";O.style.position="absolute";O.style.cursor="default";O.style.padding="8px";O.style.right="0px";O.style.top="0px";v.appendChild(O);var E=!1;mxEvent.addGestureListeners(O,mxUtils.bind(this,function(c){E=b.sidebar.currentElt==v}),null,null);mxEvent.addListener(O,
+"click",mxUtils.bind(this,function(b){E||K(b,O);mxEvent.consume(b)}))}Q.appendChild(v);return v}function G(){function b(b,c){var f=mxResources.get(b);null==f&&(f=b.substring(0,1).toUpperCase()+b.substring(1));18<f.length&&(f=f.substring(0,18)+"&hellip;");return f+" ("+c.length+")"}function c(b,c,f){mxEvent.addListener(c,"click",function(){R!=c&&(R.style.backgroundColor="",R=c,R.style.backgroundColor=n,Q.scrollTop=0,Q.innerHTML="",M=0,ma=f?ga[b][f]:ea[b],T=null,B(!1))})}ua&&(ua=!1,mxEvent.addListener(Q,
"scroll",function(b){Q.scrollTop+Q.clientHeight>=Q.scrollHeight&&(B(),mxEvent.consume(b))}));if(0<oa){var f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(f,mxResources.get("custom"));ha.appendChild(f);for(var e in ja){var d=document.createElement("div"),l=e,f=ja[e];18<l.length&&(l=l.substring(0,18)+"&hellip;");d.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;";
d.setAttribute("title",l+" ("+f.length+")");mxUtils.write(d,d.getAttribute("title"));null!=m&&(d.style.padding=m);ha.appendChild(d);(function(b,c){mxEvent.addListener(d,"click",function(){R!=c&&(R.style.backgroundColor="",R=c,R.style.backgroundColor=n,Q.scrollTop=0,Q.innerHTML="",M=0,ma=ja[b],T=null,B(!1))})})(e,d)}f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;";mxUtils.write(f,"draw.io");ha.appendChild(f)}for(e in ea){var l=
ga[e],g=d=document.createElement(l?"ul":"div"),f=ea[e],p=b(e,f);if(null!=l){var k=document.createElement("li"),q=document.createElement("div");q.className="geTempTreeCaret";q.setAttribute("title",p);mxUtils.write(q,p);g=q;k.appendChild(q);p=document.createElement("ul");p.className="geTempTreeNested";p.style.visibility="hidden";for(var t in l){var y=document.createElement("li"),u=b(t,l[t]);y.setAttribute("title",u);mxUtils.write(y,u);c(e,y,t);p.appendChild(y)}k.appendChild(p);d.className="geTempTree";
d.appendChild(k);(function(b,c){mxEvent.addListener(c,"click",function(){b.style.visibility="visible";b.classList.toggle("geTempTreeActive");b.classList.toggle("geTempTreeNested")&&setTimeout(function(){b.style.visibility="hidden"},550);c.classList.toggle("geTempTreeCaret-down")})})(p,q)}else d.style.cssText="display:block;cursor:pointer;padding:6px;white-space:nowrap;margin-bottom:-1px;overflow:hidden;text-overflow:ellipsis;user-select:none;transition: all 0.5s;",d.setAttribute("title",p),mxUtils.write(d,
-p);null!=m&&(d.style.padding=m);ha.appendChild(d);null==R&&0<f.length&&(R=d,R.style.backgroundColor=n,ma=f);c(e,g)}B(!1)}var D=500>(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth);d=null!=d?d:!0;g=null!=g?g:!1;n=null!=n?n:"#ebf2f9";f=null!=f?f:Editor.isDarkMode()?"#a2a2a2":"#e6eff8";l=null!=l?l:Editor.isDarkMode()?"1px dashed #00a8ff":"1px solid #ccd9ea";p=null!=p?p:EditorUi.templateFile;var E=document.createElement("div");E.style.userSelect="none";E.style.height=
-"100%";var H=document.createElement("div");H.style.whiteSpace="nowrap";H.style.height="46px";d&&E.appendChild(H);var I=document.createElement("img");I.setAttribute("border","0");I.setAttribute("align","absmiddle");I.style.width="40px";I.style.height="40px";I.style.marginRight="10px";I.style.paddingBottom="4px";I.src=b.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":b.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":b.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":b.mode==App.MODE_GITHUB?
-IMAGE_PATH+"/github-logo.svg":b.mode==App.MODE_GITLAB?IMAGE_PATH+"/gitlab-logo.svg":b.mode==App.MODE_NOTION?IMAGE_PATH+"/notion-logo.svg":b.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":b.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";e||D||!d||H.appendChild(I);d&&mxUtils.write(H,(D?mxResources.get("name"):null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");I=".drawio";b.mode==
+p);null!=m&&(d.style.padding=m);ha.appendChild(d);null==R&&0<f.length&&(R=d,R.style.backgroundColor=n,ma=f);c(e,g)}B(!1)}var E=500>(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth);d=null!=d?d:!0;g=null!=g?g:!1;n=null!=n?n:"#ebf2f9";f=null!=f?f:Editor.isDarkMode()?"#a2a2a2":"#e6eff8";l=null!=l?l:Editor.isDarkMode()?"1px dashed #00a8ff":"1px solid #ccd9ea";p=null!=p?p:EditorUi.templateFile;var F=document.createElement("div");F.style.userSelect="none";F.style.height=
+"100%";var H=document.createElement("div");H.style.whiteSpace="nowrap";H.style.height="46px";d&&F.appendChild(H);var I=document.createElement("img");I.setAttribute("border","0");I.setAttribute("align","absmiddle");I.style.width="40px";I.style.height="40px";I.style.marginRight="10px";I.style.paddingBottom="4px";I.src=b.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":b.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":b.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":b.mode==App.MODE_GITHUB?
+IMAGE_PATH+"/github-logo.svg":b.mode==App.MODE_GITLAB?IMAGE_PATH+"/gitlab-logo.svg":b.mode==App.MODE_NOTION?IMAGE_PATH+"/notion-logo.svg":b.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":b.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";e||E||!d||H.appendChild(I);d&&mxUtils.write(H,(E?mxResources.get("name"):null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");I=".drawio";b.mode==
App.MODE_GOOGLE&&null!=b.drive?I=b.drive.extension:b.mode==App.MODE_DROPBOX&&null!=b.dropbox?I=b.dropbox.extension:b.mode==App.MODE_ONEDRIVE&&null!=b.oneDrive?I=b.oneDrive.extension:b.mode==App.MODE_GITHUB&&null!=b.gitHub?I=b.gitHub.extension:b.mode==App.MODE_GITLAB&&null!=b.gitLab?I=b.gitLab.extension:b.mode==App.MODE_NOTION&&null!=b.notion?I=b.notion.extension:b.mode==App.MODE_TRELLO&&null!=b.trello&&(I=b.trello.extension);var L=document.createElement("input");L.setAttribute("value",b.defaultFilename+
-I);L.style.marginLeft="10px";L.style.width=e||D?"144px":"244px";this.init=function(){d&&(L.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?L.select():document.execCommand("selectAll",!1,null));null!=Q.parentNode&&null!=Q.parentNode.parentNode&&mxEvent.addGestureListeners(Q.parentNode.parentNode,mxUtils.bind(this,function(c){b.sidebar.hideTooltip()}),null,null)};d&&(H.appendChild(L),z?L.style.width=e||D?"350px":"450px":(null!=b.editor.diagramFileTypes&&(z=FilenameDialog.createFileTypes(b,
-L,b.editor.diagramFileTypes),z.style.marginLeft="6px",z.style.width=e||D?"80px":"180px",H.appendChild(z)),null!=b.editor.fileExtensions&&(D=FilenameDialog.createTypeHint(b,L,b.editor.fileExtensions),D.style.marginTop="12px",H.appendChild(D))));var H=!1,M=0,N=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),O=mxUtils.button(x||mxResources.get("create"),function(){O.setAttribute("disabled","disabled");y();O.removeAttribute("disabled")});
-O.className="geBtn gePrimaryBtn";if(q||t){var J=[],T=null,K=null,U=null,P=function(b){O.setAttribute("disabled","disabled");for(var c=0;c<J.length;c++)J[c].className=c==b?"geBtn gePrimaryBtn":"geBtn"},H=!0;x=document.createElement("div");x.style.whiteSpace="nowrap";x.style.height="30px";E.appendChild(x);D=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){ha.style.display="";V.style.display="";Q.style.left="160px";P(0);Q.scrollTop=0;Q.innerHTML="";M=0;T!=ma&&(ma=T,ea=K,oa=U,ha.innerHTML=
-"",F(),T=null)});J.push(D);x.appendChild(D);var S=function(b){ha.style.display="none";V.style.display="none";Q.style.left="30px";P(b?-1:1);null==T&&(T=ma);Q.scrollTop=0;Q.innerHTML="";N.spin(Q);var c=function(b,c,f){M=0;N.stop();ma=b;f=f||{};var e=0,d;for(d in f)e+=f[d].length;if(c)Q.innerHTML=c;else if(0==b.length&&0==e)Q.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found"));else if(Q.innerHTML="",0<e){ha.style.display="";Q.style.left="160px";ha.innerHTML="";oa=0;
-ea={"draw.io":b};for(d in f)ea[d]=f[d];F()}else B(!0)};b?t(Y.value,c):q(c)};q&&(D=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){S()}),x.appendChild(D),J.push(D));if(t){D=document.createElement("span");D.style.marginLeft="10px";D.innerHTML=mxUtils.htmlEntities(mxResources.get("search")+":");x.appendChild(D);var Y=document.createElement("input");Y.style.marginRight="10px";Y.style.marginLeft="10px";Y.style.width="220px";mxEvent.addListener(Y,"keypress",function(b){13==b.keyCode&&
-S(!0)});x.appendChild(Y);D=mxUtils.button(mxResources.get("search"),function(){S(!0)});D.className="geBtn";x.appendChild(D)}P(0)}var ka=null,aa=null,ba=null,na=null,pa=null,fa=null,ca=null,Q=document.createElement("div");Q.style.border="1px solid #d3d3d3";Q.style.position="absolute";Q.style.left="160px";Q.style.right="34px";x=(d?72:40)+(H?30:0);Q.style.top=x+"px";Q.style.bottom="68px";Q.style.margin="6px 0 0 -1px";Q.style.padding="6px";Q.style.overflow="auto";var V=document.createElement("div");V.style.cssText=
+I);L.style.marginLeft="10px";L.style.width=e||E?"144px":"244px";this.init=function(){d&&(L.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?L.select():document.execCommand("selectAll",!1,null));null!=Q.parentNode&&null!=Q.parentNode.parentNode&&mxEvent.addGestureListeners(Q.parentNode.parentNode,mxUtils.bind(this,function(c){b.sidebar.hideTooltip()}),null,null)};d&&(H.appendChild(L),z?L.style.width=e||E?"350px":"450px":(null!=b.editor.diagramFileTypes&&(z=FilenameDialog.createFileTypes(b,
+L,b.editor.diagramFileTypes),z.style.marginLeft="6px",z.style.width=e||E?"80px":"180px",H.appendChild(z)),null!=b.editor.fileExtensions&&(E=FilenameDialog.createTypeHint(b,L,b.editor.fileExtensions),E.style.marginTop="12px",H.appendChild(E))));var H=!1,M=0,N=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),P=mxUtils.button(x||mxResources.get("create"),function(){P.setAttribute("disabled","disabled");y();P.removeAttribute("disabled")});
+P.className="geBtn gePrimaryBtn";if(q||t){var K=[],T=null,J=null,U=null,O=function(b){P.setAttribute("disabled","disabled");for(var c=0;c<K.length;c++)K[c].className=c==b?"geBtn gePrimaryBtn":"geBtn"},H=!0;x=document.createElement("div");x.style.whiteSpace="nowrap";x.style.height="30px";F.appendChild(x);E=mxUtils.button(mxResources.get("Templates",null,"Templates"),function(){ha.style.display="";V.style.display="";Q.style.left="160px";O(0);Q.scrollTop=0;Q.innerHTML="";M=0;T!=ma&&(ma=T,ea=J,oa=U,ha.innerHTML=
+"",G(),T=null)});K.push(E);x.appendChild(E);var S=function(b){ha.style.display="none";V.style.display="none";Q.style.left="30px";O(b?-1:1);null==T&&(T=ma);Q.scrollTop=0;Q.innerHTML="";N.spin(Q);var c=function(b,c,f){M=0;N.stop();ma=b;f=f||{};var e=0,d;for(d in f)e+=f[d].length;if(c)Q.innerHTML=c;else if(0==b.length&&0==e)Q.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams",null,"No Diagrams Found"));else if(Q.innerHTML="",0<e){ha.style.display="";Q.style.left="160px";ha.innerHTML="";oa=0;
+ea={"draw.io":b};for(d in f)ea[d]=f[d];G()}else B(!0)};b?t(Y.value,c):q(c)};q&&(E=mxUtils.button(mxResources.get("Recent",null,"Recent"),function(){S()}),x.appendChild(E),K.push(E));if(t){E=document.createElement("span");E.style.marginLeft="10px";E.innerHTML=mxUtils.htmlEntities(mxResources.get("search")+":");x.appendChild(E);var Y=document.createElement("input");Y.style.marginRight="10px";Y.style.marginLeft="10px";Y.style.width="220px";mxEvent.addListener(Y,"keypress",function(b){13==b.keyCode&&
+S(!0)});x.appendChild(Y);E=mxUtils.button(mxResources.get("search"),function(){S(!0)});E.className="geBtn";x.appendChild(E)}O(0)}var ka=null,aa=null,ba=null,na=null,pa=null,fa=null,ca=null,Q=document.createElement("div");Q.style.border="1px solid #d3d3d3";Q.style.position="absolute";Q.style.left="160px";Q.style.right="34px";x=(d?72:40)+(H?30:0);Q.style.top=x+"px";Q.style.bottom="68px";Q.style.margin="6px 0 0 -1px";Q.style.padding="6px";Q.style.overflow="auto";var V=document.createElement("div");V.style.cssText=
"position:absolute;left:30px;width:128px;top:"+x+"px;height:22px;margin-top: 6px;white-space: nowrap";var ia=document.createElement("input");ia.style.cssText="width:105px;height:16px;border:1px solid #d3d3d3;padding: 3px 20px 3px 3px;font-size: 12px";ia.setAttribute("placeholder",mxResources.get("search"));ia.setAttribute("type","text");V.appendChild(ia);var W=document.createElement("img"),Z="undefined"!=typeof Sidebar?Sidebar.prototype.searchImage:IMAGE_PATH+"/search.png";W.setAttribute("src",Z);
W.setAttribute("title",mxResources.get("search"));W.style.position="relative";W.style.left="-18px";W.style.top="1px";W.style.background="url('"+b.editor.transparentImage+"')";V.appendChild(W);mxEvent.addListener(W,"click",function(){W.getAttribute("src")==Dialog.prototype.closeImage&&(W.setAttribute("src",Z),W.setAttribute("title",mxResources.get("search")),ia.value="",null!=da&&(da.click(),da=null));ia.focus()});mxEvent.addListener(ia,"keydown",mxUtils.bind(this,function(b){if(13==b.keyCode){var c=
ia.value;if(""==c)null!=da&&(da.click(),da=null);else{if(null==NewDialog.tagsList[p]){var f={},d;for(d in ea)for(var e=ea[d],l=0;l<e.length;l++){var m=e[l];if(null!=m.tags)for(var g=m.tags.toLowerCase().split(";"),k=0;k<g.length;k++)null==f[g[k]]&&(f[g[k]]=[]),f[g[k]].push(m)}NewDialog.tagsList[p]=f}var q=c.toLowerCase().split(" "),f=NewDialog.tagsList[p];if(0<oa&&null==f.__tagsList__){for(d in ja)for(e=ja[d],l=0;l<e.length;l++)for(m=e[l],g=m.title.split(" "),g.push(d),k=0;k<g.length;k++){var t=g[k].toLowerCase();
@@ -10229,24 +10231,24 @@ null==f[t]&&(f[t]=[]);f[t].push(m)}f.__tagsList__=!0}d=[];e={};for(l=g=0;l<q.len
"",da=R,R=f);ma=d;T=null;B(!1)}mxEvent.consume(b)}}));mxEvent.addListener(ia,"keyup",mxUtils.bind(this,function(b){""==ia.value?(W.setAttribute("src",Z),W.setAttribute("title",mxResources.get("search"))):(W.setAttribute("src",Dialog.prototype.closeImage),W.setAttribute("title",mxResources.get("reset")))}));x+=23;var ha=document.createElement("div");ha.style.cssText="position:absolute;left:30px;width:128px;top:"+x+"px;bottom:68px;margin-top:6px;overflow:auto;border:1px solid #d3d3d3;";mxEvent.addListener(Q,
"scroll",function(){b.sidebar.hideTooltip()});var ra=140,X=140,ea={},ga={},ja={},oa=0,ua=!0,R=null,da=null;ea.basic=[{title:"blankDiagram",select:!0}];var ma=ea.basic;if(!e){var sa=function(){mxUtils.get(qa,function(b){if(!la){la=!0;b=b.getXml().documentElement.firstChild;for(var c={};null!=b;){if("undefined"!==typeof b.getAttribute)if("clibs"==b.nodeName){for(var f=b.getAttribute("name"),d=b.getElementsByTagName("add"),e=[],l=0;l<d.length;l++)e.push(encodeURIComponent(mxUtils.getTextContent(d[l])));
null!=f&&0<e.length&&(c[f]=e.join(";"))}else if(e=b.getAttribute("url"),null!=e){d=b.getAttribute("section");f=b.getAttribute("subsection");if(null==d&&(l=e.indexOf("/"),d=e.substring(0,l),null==f)){var m=e.indexOf("/",l+1);-1<m&&(f=e.substring(l+1,m))}l=ea[d];null==l&&(l=[],ea[d]=l);e=b.getAttribute("clibs");null!=c[e]&&(e=c[e]);e={url:b.getAttribute("url"),libs:b.getAttribute("libs"),title:b.getAttribute("title"),tooltip:b.getAttribute("name")||b.getAttribute("url"),preview:b.getAttribute("preview"),
-clibs:e,tags:b.getAttribute("tags")};l.push(e);null!=f&&(l=ga[d],null==l&&(l={},ga[d]=l),d=l[f],null==d&&(d=[],l[f]=d),d.push(e))}b=b.nextSibling}N.stop();F()}})};E.appendChild(V);E.appendChild(ha);E.appendChild(Q);var la=!1,qa=p;/^https?:\/\//.test(qa)&&!b.editor.isCorsEnabledForUrl(qa)&&(qa=PROXY_URL+"?url="+encodeURIComponent(qa));N.spin(Q);null!=A?A(function(b,c){ja=b;U=oa=c;sa()},sa):sa();K=ea}mxEvent.addListener(L,"keypress",function(c){b.dialog.container.firstChild==E&&13==c.keyCode&&y()});
+clibs:e,tags:b.getAttribute("tags")};l.push(e);null!=f&&(l=ga[d],null==l&&(l={},ga[d]=l),d=l[f],null==d&&(d=[],l[f]=d),d.push(e))}b=b.nextSibling}N.stop();G()}})};F.appendChild(V);F.appendChild(ha);F.appendChild(Q);var la=!1,qa=p;/^https?:\/\//.test(qa)&&!b.editor.isCorsEnabledForUrl(qa)&&(qa=PROXY_URL+"?url="+encodeURIComponent(qa));N.spin(Q);null!=A?A(function(b,c){ja=b;U=oa=c;sa()},sa):sa();J=ea}mxEvent.addListener(L,"keypress",function(c){b.dialog.container.firstChild==F&&13==c.keyCode&&y()});
A=document.createElement("div");A.style.marginTop=e?"4px":"16px";A.style.textAlign="right";A.style.position="absolute";A.style.left="40px";A.style.bottom="24px";A.style.right="40px";e||b.isOffline()||!d||null!=c||g||(x=mxUtils.button(mxResources.get("help"),function(){b.openLink("https://support.draw.io/display/DO/Creating+and+Opening+Files")}),x.className="geBtn",A.appendChild(x));x=mxUtils.button(mxResources.get("cancel"),function(){null!=k&&k();b.hideDialog(!0)});x.className="geBtn";!b.editor.cancelFirst||
g&&null==k||A.appendChild(x);e||"1"==urlParams.embed||g||mxClient.IS_ANDROID||mxClient.IS_IOS||"1"==urlParams.noDevice||(e=mxUtils.button(mxResources.get("fromTemplateUrl"),function(){var c=new FilenameDialog(b,"",mxResources.get("create"),function(c){null!=c&&0<c.length&&(c=b.getUrl(window.location.pathname+"?mode="+b.mode+"&title="+encodeURIComponent(L.value)+"&create="+encodeURIComponent(c)),null==b.getCurrentFile()?window.location.href=c:window.openWindow(c))},mxResources.get("url"));b.showDialog(c.container,
300,80,!0,!0);c.init()}),e.className="geBtn",A.appendChild(e));Graph.fileSupport&&v&&(v=mxUtils.button(mxResources.get("import"),function(){if(null==b.newDlgFileInputElt){var c=document.createElement("input");c.setAttribute("multiple","multiple");c.setAttribute("type","file");mxEvent.addListener(c,"change",function(f){b.openFiles(c.files,!0);c.value=""});c.style.display="none";document.body.appendChild(c);b.newDlgFileInputElt=c}b.newDlgFileInputElt.click()}),v.className="geBtn",A.appendChild(v));
-A.appendChild(O);b.editor.cancelFirst||null!=c||g&&null==k||A.appendChild(x);E.appendChild(A);this.container=E};NewDialog.tagsList={};
-var CreateDialog=function(b,e,d,c,g,k,n,f,l,m,p,q,t,u,v,x,A){function z(c,f,d,l){function m(){mxEvent.addListener(g,"click",function(){var c=d;if(n){var f=C.value,l=f.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>l){var c=null!=c?c:E.value,m="";c==App.MODE_GOOGLE?m=b.drive.extension:c==App.MODE_GITHUB?m=b.gitHub.extension:c==App.MODE_GITLAB?m=b.gitLab.extension:c==App.MODE_NOTION?m=b.notion.extension:c==App.MODE_TRELLO?m=b.trello.extension:c==App.MODE_DROPBOX?m=b.dropbox.extension:c==App.MODE_ONEDRIVE?
+A.appendChild(P);b.editor.cancelFirst||null!=c||g&&null==k||A.appendChild(x);F.appendChild(A);this.container=F};NewDialog.tagsList={};
+var CreateDialog=function(b,e,d,c,g,k,n,f,l,m,p,q,t,u,v,x,A){function z(c,f,d,l){function m(){mxEvent.addListener(g,"click",function(){var c=d;if(n){var f=C.value,l=f.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>l){var c=null!=c?c:F.value,m="";c==App.MODE_GOOGLE?m=b.drive.extension:c==App.MODE_GITHUB?m=b.gitHub.extension:c==App.MODE_GITLAB?m=b.gitLab.extension:c==App.MODE_NOTION?m=b.notion.extension:c==App.MODE_TRELLO?m=b.trello.extension:c==App.MODE_DROPBOX?m=b.dropbox.extension:c==App.MODE_ONEDRIVE?
m=b.oneDrive.extension:c==App.MODE_DEVICE&&(m=".drawio");0<=l&&(f=f.substring(0,l));C.value=f+m}}B(d)})}var g=document.createElement("a");g.style.overflow="hidden";var p=document.createElement("img");p.src=c;p.setAttribute("border","0");p.setAttribute("align","absmiddle");p.style.width="60px";p.style.height="60px";p.style.paddingBottom="6px";g.style.display="inline-block";g.className="geBaseButton";g.style.position="relative";g.style.margin="4px";g.style.padding="8px 8px 10px 8px";g.style.whiteSpace=
"nowrap";g.appendChild(p);g.style.color="gray";g.style.fontSize="11px";var k=document.createElement("div");g.appendChild(k);mxUtils.write(k,f);if(null!=l&&null==b[l]){p.style.visibility="hidden";mxUtils.setOpacity(k,10);var t=new Spinner({lines:12,length:12,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});t.spin(g);var y=window.setTimeout(function(){null==b[l]&&(t.stop(),g.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,
-function(){null!=b[l]&&(window.clearTimeout(y),mxUtils.setOpacity(k,100),p.style.visibility="",t.stop(),m())}))}else m();F.appendChild(g);++D==q&&(mxUtils.br(F),D=0)}function B(c){var f=C.value;if(null==c||null!=f&&0<f.length)A&&b.hideDialog(),d(f,c,C)}p="1"==urlParams.noDevice?!1:p;n=null!=n?n:!0;f=null!=f?f:!0;q=null!=q?q:4;A=null!=A?A:!0;k=document.createElement("div");k.style.whiteSpace="nowrap";null==c&&b.addLanguageMenu(k);var y=document.createElement("h2");mxUtils.write(y,g||mxResources.get("create"));
+function(){null!=b[l]&&(window.clearTimeout(y),mxUtils.setOpacity(k,100),p.style.visibility="",t.stop(),m())}))}else m();G.appendChild(g);++E==q&&(mxUtils.br(G),E=0)}function B(c){var f=C.value;if(null==c||null!=f&&0<f.length)A&&b.hideDialog(),d(f,c,C)}p="1"==urlParams.noDevice?!1:p;n=null!=n?n:!0;f=null!=f?f:!0;q=null!=q?q:4;A=null!=A?A:!0;k=document.createElement("div");k.style.whiteSpace="nowrap";null==c&&b.addLanguageMenu(k);var y=document.createElement("h2");mxUtils.write(y,g||mxResources.get("create"));
y.style.marginTop="0px";y.style.marginBottom="24px";k.appendChild(y);mxUtils.write(k,mxResources.get("filename")+":");var C=document.createElement("input");C.setAttribute("value",e);C.style.width="200px";C.style.marginLeft="10px";C.style.marginBottom="20px";C.style.maxWidth="70%";this.init=function(){C.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?C.select():document.execCommand("selectAll",!1,null)};k.appendChild(C);null!=x&&(null!=b.editor.diagramFileTypes&&(g=FilenameDialog.createFileTypes(b,
-C,b.editor.diagramFileTypes),g.style.marginLeft="6px",g.style.width="80px",k.appendChild(g)),k.appendChild(FilenameDialog.createTypeHint(b,C,x)));x=null;if("1"!=urlParams.noDevice&&null!=t&&null!=u&&"image/"==u.substring(0,6)&&("image/svg"!=u.substring(0,9)||mxClient.IS_SVG)){C.style.width="160px";g=document.createElement("img");var G=v?t:btoa(unescape(encodeURIComponent(t)));g.setAttribute("src","data:"+u+";base64,"+G);g.style.position="absolute";g.style.top="70px";g.style.right="100px";g.style.maxWidth=
-"120px";g.style.maxHeight="80px";mxUtils.setPrefixedStyle(g.style,"transform","translate(50%,-50%)");k.appendChild(g);mxClient.IS_FF||null==navigator.clipboard||"image/png"!=u||(x=mxUtils.button(mxResources.get("copy"),function(c){c=b.base64ToBlob(G,"image/png");c=new ClipboardItem({"image/png":c,"text/html":new Blob(['<img src="data:'+u+";base64,"+G+'">'],{type:"text/html"})});navigator.clipboard.write([c]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,
-function(c){b.handleError(c)}))}),x.style.marginTop="6px",x.className="geBtn");l&&Editor.popupsAllowed&&(g.style.cursor="pointer",mxEvent.addGestureListeners(g,null,null,function(b){mxEvent.isPopupTrigger(b)||B("_blank")}))}mxUtils.br(k);var F=document.createElement("div");F.style.textAlign="center";var D=0;F.style.marginTop="6px";k.appendChild(F);var E=document.createElement("select");E.style.marginLeft="10px";b.isOfflineApp()||b.isOffline()||("function"===typeof window.DriveClient&&(t=document.createElement("option"),
-t.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(t,mxResources.get("googleDrive")),E.appendChild(t),z(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(t,mxResources.get("oneDrive")),E.appendChild(t),b.mode==App.MODE_ONEDRIVE&&t.setAttribute("selected","selected"),z(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),
-App.MODE_ONEDRIVE,"oneDrive")),"function"===typeof window.DropboxClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(t,mxResources.get("dropbox")),E.appendChild(t),b.mode==App.MODE_DROPBOX&&t.setAttribute("selected","selected"),z(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=b.gitHub&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_GITHUB),mxUtils.write(t,mxResources.get("github")),E.appendChild(t),
-z(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=b.gitLab&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_GITLAB),mxUtils.write(t,mxResources.get("gitlab")),E.appendChild(t),z(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab")),null!=b.notion&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_NOTION),mxUtils.write(t,mxResources.get("notion")),E.appendChild(t),z(IMAGE_PATH+"/notion-logo.svg",
-mxResources.get("notion"),App.MODE_NOTION,"notion")),"function"===typeof window.TrelloClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_TRELLO),mxUtils.write(t,mxResources.get("trello")),E.appendChild(t),z(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=b.getCurrentFile()&&"1"!=urlParams.noDevice)t=document.createElement("option"),t.setAttribute("value",App.MODE_DEVICE),mxUtils.write(t,
-mxResources.get("device")),E.appendChild(t),b.mode!=App.MODE_DEVICE&&f||t.setAttribute("selected","selected"),p&&z(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);f&&isLocalStorage&&"0"!=urlParams.browser&&(f=document.createElement("option"),f.setAttribute("value",App.MODE_BROWSER),mxUtils.write(f,mxResources.get("browser")),E.appendChild(f),b.mode==App.MODE_BROWSER&&f.setAttribute("selected","selected"),z(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));
+C,b.editor.diagramFileTypes),g.style.marginLeft="6px",g.style.width="80px",k.appendChild(g)),k.appendChild(FilenameDialog.createTypeHint(b,C,x)));x=null;if("1"!=urlParams.noDevice&&null!=t&&null!=u&&"image/"==u.substring(0,6)&&("image/svg"!=u.substring(0,9)||mxClient.IS_SVG)){C.style.width="160px";g=document.createElement("img");var D=v?t:btoa(unescape(encodeURIComponent(t)));g.setAttribute("src","data:"+u+";base64,"+D);g.style.position="absolute";g.style.top="70px";g.style.right="100px";g.style.maxWidth=
+"120px";g.style.maxHeight="80px";mxUtils.setPrefixedStyle(g.style,"transform","translate(50%,-50%)");k.appendChild(g);mxClient.IS_FF||null==navigator.clipboard||"image/png"!=u||(x=mxUtils.button(mxResources.get("copy"),function(c){c=b.base64ToBlob(D,"image/png");c=new ClipboardItem({"image/png":c,"text/html":new Blob(['<img src="data:'+u+";base64,"+D+'">'],{type:"text/html"})});navigator.clipboard.write([c]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,
+function(c){b.handleError(c)}))}),x.style.marginTop="6px",x.className="geBtn");l&&Editor.popupsAllowed&&(g.style.cursor="pointer",mxEvent.addGestureListeners(g,null,null,function(b){mxEvent.isPopupTrigger(b)||B("_blank")}))}mxUtils.br(k);var G=document.createElement("div");G.style.textAlign="center";var E=0;G.style.marginTop="6px";k.appendChild(G);var F=document.createElement("select");F.style.marginLeft="10px";b.isOfflineApp()||b.isOffline()||("function"===typeof window.DriveClient&&(t=document.createElement("option"),
+t.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(t,mxResources.get("googleDrive")),F.appendChild(t),z(IMAGE_PATH+"/google-drive-logo.svg",mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(t,mxResources.get("oneDrive")),F.appendChild(t),b.mode==App.MODE_ONEDRIVE&&t.setAttribute("selected","selected"),z(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),
+App.MODE_ONEDRIVE,"oneDrive")),"function"===typeof window.DropboxClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_DROPBOX),mxUtils.write(t,mxResources.get("dropbox")),F.appendChild(t),b.mode==App.MODE_DROPBOX&&t.setAttribute("selected","selected"),z(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=b.gitHub&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_GITHUB),mxUtils.write(t,mxResources.get("github")),F.appendChild(t),
+z(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=b.gitLab&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_GITLAB),mxUtils.write(t,mxResources.get("gitlab")),F.appendChild(t),z(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab")),null!=b.notion&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_NOTION),mxUtils.write(t,mxResources.get("notion")),F.appendChild(t),z(IMAGE_PATH+"/notion-logo.svg",
+mxResources.get("notion"),App.MODE_NOTION,"notion")),"function"===typeof window.TrelloClient&&(t=document.createElement("option"),t.setAttribute("value",App.MODE_TRELLO),mxUtils.write(t,mxResources.get("trello")),F.appendChild(t),z(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage||null!=b.getCurrentFile()&&"1"!=urlParams.noDevice)t=document.createElement("option"),t.setAttribute("value",App.MODE_DEVICE),mxUtils.write(t,
+mxResources.get("device")),F.appendChild(t),b.mode!=App.MODE_DEVICE&&f||t.setAttribute("selected","selected"),p&&z(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);f&&isLocalStorage&&"0"!=urlParams.browser&&(f=document.createElement("option"),f.setAttribute("value",App.MODE_BROWSER),mxUtils.write(f,mxResources.get("browser")),F.appendChild(f),b.mode==App.MODE_BROWSER&&f.setAttribute("selected","selected"),z(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));
f=document.createElement("div");f.style.marginTop="26px";f.style.textAlign="center";null!=m&&(p=mxUtils.button(mxResources.get("help"),function(){b.openLink(m)}),p.className="geBtn",f.appendChild(p));p=mxUtils.button(mxResources.get(null!=c?"close":"cancel"),function(){null!=c?c():(b.fileLoaded(null),b.hideDialog(),window.close(),window.location.href=b.getUrl())});p.className="geBtn";b.editor.cancelFirst&&null==c&&f.appendChild(p);null==c&&(t=mxUtils.button(mxResources.get("decideLater"),function(){B(null)}),
t.className="geBtn",f.appendChild(t));l&&Editor.popupsAllowed&&(l=mxUtils.button(mxResources.get("openInNewWindow"),function(){B("_blank")}),l.className="geBtn",f.appendChild(l));CreateDialog.showDownloadButton&&(l=mxUtils.button(mxResources.get("download"),function(){B("download")}),l.className="geBtn",f.appendChild(l),null!=x&&(l.style.marginTop="6px",f.style.marginTop="6px"));null!=x&&(mxUtils.br(f),f.appendChild(x));b.editor.cancelFirst&&null==c||f.appendChild(p);mxEvent.addListener(C,"keypress",
function(c){13==c.keyCode?B(App.MODE_DEVICE):27==c.keyCode&&(b.fileLoaded(null),b.hideDialog(),window.close())});k.appendChild(f);this.container=k};CreateDialog.showDownloadButton="1"!=urlParams.noDevice;
@@ -10285,56 +10287,56 @@ f.removeAttribute("disabled"):f.setAttribute("disabled","disabled")});mxEvent.ad
var RevisionDialog=function(b,e,d){var c=document.createElement("div"),g=document.createElement("h3");g.style.marginTop="0px";mxUtils.write(g,mxResources.get("revisionHistory"));c.appendChild(g);g=document.createElement("div");g.style.position="absolute";g.style.overflow="auto";g.style.width="170px";g.style.height="378px";c.appendChild(g);var k=document.createElement("div");k.style.position="absolute";k.style.border="1px solid lightGray";k.style.left="199px";k.style.width="470px";k.style.height="376px";
k.style.overflow="hidden";var n=document.createElement("div");n.style.cssText="position:absolute;left:0;right:0;top:0;bottom:20px;text-align:center;transform:translate(0,50%);pointer-events:none;";k.appendChild(n);mxEvent.disableContextMenu(k);c.appendChild(k);var f=new Graph(k);f.setTooltips(!1);f.setEnabled(!1);f.setPanning(!0);f.panningHandler.ignoreCell=!0;f.panningHandler.useLeftButtonForPanning=!0;f.minFitScale=null;f.maxFitScale=null;f.centerZoom=!0;var l=0,m=null,p=0,q=f.getGlobalVariable;
f.getGlobalVariable=function(b){return"page"==b&&null!=m&&null!=m[p]?m[p].getAttribute("name"):"pagenumber"==b?p+1:"pagecount"==b?null!=m?m.length:1:q.apply(this,arguments)};f.getLinkForCell=function(){return null};Editor.MathJaxRender&&f.addListener(mxEvent.SIZE,mxUtils.bind(this,function(c,d){b.editor.graph.mathEnabled&&Editor.MathJaxRender(f.container)}));for(var t={lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.4,trail:60,
-shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"},u=new Spinner(t),v=b.getCurrentFile(),x=b.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),A={},t=0;t<x.length;t++)A[x[t].getAttribute("id")]=x[t];var z=null,B=null,y=null,C=null,G=mxUtils.button("",function(){null!=y&&f.zoomIn()});G.className="geSprite geSprite-zoomin";G.setAttribute("title",mxResources.get("zoomIn"));G.style.outline="none";G.style.border="none";G.style.margin="2px";G.setAttribute("disabled","disabled");
-mxUtils.setOpacity(G,20);var F=mxUtils.button("",function(){null!=y&&f.zoomOut()});F.className="geSprite geSprite-zoomout";F.setAttribute("title",mxResources.get("zoomOut"));F.style.outline="none";F.style.border="none";F.style.margin="2px";F.setAttribute("disabled","disabled");mxUtils.setOpacity(F,20);var D=mxUtils.button("",function(){null!=y&&(f.maxFitScale=8,f.fit(8),f.center())});D.className="geSprite geSprite-fit";D.setAttribute("title",mxResources.get("fit"));D.style.outline="none";D.style.border=
-"none";D.style.margin="2px";D.setAttribute("disabled","disabled");mxUtils.setOpacity(D,20);var E=mxUtils.button("",function(){null!=y&&(f.zoomActual(),f.center())});E.className="geSprite geSprite-actualsize";E.setAttribute("title",mxResources.get("actualSize"));E.style.outline="none";E.style.border="none";E.style.margin="2px";E.setAttribute("disabled","disabled");mxUtils.setOpacity(E,20);var H=mxUtils.button("",function(){});H.className="geSprite geSprite-middle";H.setAttribute("title",mxResources.get("compare"));
+shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"},u=new Spinner(t),v=b.getCurrentFile(),x=b.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),A={},t=0;t<x.length;t++)A[x[t].getAttribute("id")]=x[t];var z=null,B=null,y=null,C=null,D=mxUtils.button("",function(){null!=y&&f.zoomIn()});D.className="geSprite geSprite-zoomin";D.setAttribute("title",mxResources.get("zoomIn"));D.style.outline="none";D.style.border="none";D.style.margin="2px";D.setAttribute("disabled","disabled");
+mxUtils.setOpacity(D,20);var G=mxUtils.button("",function(){null!=y&&f.zoomOut()});G.className="geSprite geSprite-zoomout";G.setAttribute("title",mxResources.get("zoomOut"));G.style.outline="none";G.style.border="none";G.style.margin="2px";G.setAttribute("disabled","disabled");mxUtils.setOpacity(G,20);var E=mxUtils.button("",function(){null!=y&&(f.maxFitScale=8,f.fit(8),f.center())});E.className="geSprite geSprite-fit";E.setAttribute("title",mxResources.get("fit"));E.style.outline="none";E.style.border=
+"none";E.style.margin="2px";E.setAttribute("disabled","disabled");mxUtils.setOpacity(E,20);var F=mxUtils.button("",function(){null!=y&&(f.zoomActual(),f.center())});F.className="geSprite geSprite-actualsize";F.setAttribute("title",mxResources.get("actualSize"));F.style.outline="none";F.style.border="none";F.style.margin="2px";F.setAttribute("disabled","disabled");mxUtils.setOpacity(F,20);var H=mxUtils.button("",function(){});H.className="geSprite geSprite-middle";H.setAttribute("title",mxResources.get("compare"));
H.style.outline="none";H.style.border="none";H.style.margin="2px";mxUtils.setOpacity(H,60);var I=k.cloneNode(!1);I.style.pointerEvent="none";k.parentNode.appendChild(I);var L=new Graph(I);L.setTooltips(!1);L.setEnabled(!1);L.setPanning(!0);L.panningHandler.ignoreCell=!0;L.panningHandler.useLeftButtonForPanning=!0;L.minFitScale=null;L.maxFitScale=null;L.centerZoom=!0;mxEvent.addGestureListeners(H,function(b){b=A[m[l].getAttribute("id")];mxUtils.setOpacity(H,20);n.innerHTML="";null==b?mxUtils.write(n,
mxResources.get("pageNotFound")):(M.style.display="none",k.style.display="none",I.style.display="",I.style.backgroundColor=k.style.backgroundColor,b=Editor.parseDiagramNode(b),(new mxCodec(b.ownerDocument)).decode(b,L.getModel()),L.view.scaleAndTranslate(f.view.scale,f.view.translate.x,f.view.translate.y))},null,function(){mxUtils.setOpacity(H,60);n.innerHTML="";"none"==k.style.display&&(M.style.display="",k.style.display="",I.style.display="none")});var M=document.createElement("div");M.style.position=
"absolute";M.style.textAlign="right";M.style.color="gray";M.style.marginTop="10px";M.style.backgroundColor="transparent";M.style.top="440px";M.style.right="32px";M.style.maxWidth="380px";M.style.cursor="default";var N=mxUtils.button(mxResources.get("download"),function(){if(null!=y){var c=mxUtils.getXml(y.documentElement),f=b.getBaseFilename()+".drawio";b.isLocalFileSave()?b.saveLocalFile(c,f,"text/xml"):(c="undefined"===typeof pako?"&xml="+encodeURIComponent(c):"&data="+encodeURIComponent(Graph.compress(c)),
-(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(f)+"&format=xml"+c)).simulate(document,"_blank"))}});N.className="geBtn";N.setAttribute("disabled","disabled");var O=mxUtils.button(mxResources.get("restore"),function(c){null!=y&&null!=C&&(mxEvent.isShiftDown(c)?null!=y&&(c=b.getPagesForNode(y.documentElement),c=b.diffPages(b.pages,c),c=new TextareaDialog(b,mxResources.get("compare"),JSON.stringify(c,null,2),function(c){if(0<c.length)try{b.confirm(mxResources.get("areYouSure"),function(){v.patch([JSON.parse(c)],
+(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(f)+"&format=xml"+c)).simulate(document,"_blank"))}});N.className="geBtn";N.setAttribute("disabled","disabled");var P=mxUtils.button(mxResources.get("restore"),function(c){null!=y&&null!=C&&(mxEvent.isShiftDown(c)?null!=y&&(c=b.getPagesForNode(y.documentElement),c=b.diffPages(b.pages,c),c=new TextareaDialog(b,mxResources.get("compare"),JSON.stringify(c,null,2),function(c){if(0<c.length)try{b.confirm(mxResources.get("areYouSure"),function(){v.patch([JSON.parse(c)],
null,!0);b.hideDialog();b.hideDialog()})}catch(fa){b.handleError(fa)}},null,null,null,null,null,!0,null,mxResources.get("merge")),c.textarea.style.width="600px",c.textarea.style.height="380px",b.showDialog(c.container,620,460,!0,!0),c.init()):b.confirm(mxResources.get("areYouSure"),function(){null!=d?d(C):b.spinner.spin(document.body,mxResources.get("restoring"))&&v.save(!0,function(c){b.spinner.stop();b.replaceFileData(C);b.hideDialog()},function(c){b.spinner.stop();b.editor.setStatus("");b.handleError(c,
-null!=c?mxResources.get("errorSavingFile"):null)})}))});O.className="geBtn";O.setAttribute("disabled","disabled");O.setAttribute("title","Shift+Click for Diff");var J=document.createElement("select");J.setAttribute("disabled","disabled");J.style.maxWidth="80px";J.style.position="relative";J.style.top="-2px";J.style.verticalAlign="bottom";J.style.marginRight="6px";J.style.display="none";var T=null;mxEvent.addListener(J,"change",function(b){null!=T&&(T(b),mxEvent.consume(b))});var K=mxUtils.button(mxResources.get("edit"),
-function(){null!=y&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(y.documentElement)),b.openLink(b.getUrl(),null,!0))});K.className="geBtn";K.setAttribute("disabled","disabled");null!=d&&(K.style.display="none");var U=mxUtils.button(mxResources.get("show"),function(){null!=B&&b.openLink(B.getUrl(J.selectedIndex))});U.className="geBtn gePrimaryBtn";U.setAttribute("disabled","disabled");null!=d&&(U.style.display="none",O.className="geBtn gePrimaryBtn");
-x=document.createElement("div");x.style.position="absolute";x.style.top="482px";x.style.width="640px";x.style.textAlign="right";var P=document.createElement("div");P.className="geToolbarContainer";P.style.backgroundColor="transparent";P.style.padding="2px";P.style.border="none";P.style.left="199px";P.style.top="442px";var S=null;if(null!=e&&0<e.length){k.style.cursor="move";var Y=document.createElement("table");Y.style.border="1px solid lightGray";Y.style.borderCollapse="collapse";Y.style.borderSpacing=
+null!=c?mxResources.get("errorSavingFile"):null)})}))});P.className="geBtn";P.setAttribute("disabled","disabled");P.setAttribute("title","Shift+Click for Diff");var K=document.createElement("select");K.setAttribute("disabled","disabled");K.style.maxWidth="80px";K.style.position="relative";K.style.top="-2px";K.style.verticalAlign="bottom";K.style.marginRight="6px";K.style.display="none";var T=null;mxEvent.addListener(K,"change",function(b){null!=T&&(T(b),mxEvent.consume(b))});var J=mxUtils.button(mxResources.get("edit"),
+function(){null!=y&&(window.openFile=new OpenFile(function(){window.openFile=null}),window.openFile.setData(mxUtils.getXml(y.documentElement)),b.openLink(b.getUrl(),null,!0))});J.className="geBtn";J.setAttribute("disabled","disabled");null!=d&&(J.style.display="none");var U=mxUtils.button(mxResources.get("show"),function(){null!=B&&b.openLink(B.getUrl(K.selectedIndex))});U.className="geBtn gePrimaryBtn";U.setAttribute("disabled","disabled");null!=d&&(U.style.display="none",P.className="geBtn gePrimaryBtn");
+x=document.createElement("div");x.style.position="absolute";x.style.top="482px";x.style.width="640px";x.style.textAlign="right";var O=document.createElement("div");O.className="geToolbarContainer";O.style.backgroundColor="transparent";O.style.padding="2px";O.style.border="none";O.style.left="199px";O.style.top="442px";var S=null;if(null!=e&&0<e.length){k.style.cursor="move";var Y=document.createElement("table");Y.style.border="1px solid lightGray";Y.style.borderCollapse="collapse";Y.style.borderSpacing=
"0px";Y.style.width="100%";var ka=document.createElement("tbody"),aa=(new Date).toDateString();null!=b.currentPage&&null!=b.pages&&(l=mxUtils.indexOf(b.pages,b.currentPage));for(t=e.length-1;0<=t;t--){var ba=function(c){var d=new Date(c.modifiedDate),g=null;if(0<=d.getTime()){var q=function(e){u.stop();n.innerHTML="";var q=mxUtils.parseXml(e),t=b.editor.extractGraphModel(q.documentElement,!0);if(null!=t){var B=function(b){null!=b&&(b=A(Editor.parseDiagramNode(b)));return b},A=function(b){var c=b.getAttribute("background");
-if(null==c||""==c||c==mxConstants.NONE)c=f.defaultPageBackgroundColor;k.style.backgroundColor=c;(new mxCodec(b.ownerDocument)).decode(b,f.getModel());f.maxFitScale=1;f.fit(8);f.center();return b};J.style.display="none";J.innerHTML="";y=q;C=e;m=parseSelectFunction=null;p=0;if("mxfile"==t.nodeName){q=t.getElementsByTagName("diagram");m=[];for(e=0;e<q.length;e++)m.push(q[e]);p=Math.min(l,m.length-1);0<m.length&&B(m[p]);if(1<m.length)for(J.removeAttribute("disabled"),J.style.display="",e=0;e<m.length;e++)q=
-document.createElement("option"),mxUtils.write(q,m[e].getAttribute("name")||mxResources.get("pageWithNumber",[e+1])),q.setAttribute("value",e),e==p&&q.setAttribute("selected","selected"),J.appendChild(q);T=function(){try{var c=parseInt(J.value);p=l=c;B(m[c])}catch(X){J.value=l,b.handleError(X)}}}else A(t);e=c.lastModifyingUserName;null!=e&&20<e.length&&(e=e.substring(0,20)+"...");M.innerHTML="";mxUtils.write(M,(null!=e?e+" ":"")+d.toLocaleDateString()+" "+d.toLocaleTimeString());M.setAttribute("title",
-g.getAttribute("title"));G.removeAttribute("disabled");F.removeAttribute("disabled");D.removeAttribute("disabled");E.removeAttribute("disabled");H.removeAttribute("disabled");null!=v&&v.isRestricted()||(b.editor.graph.isEnabled()&&O.removeAttribute("disabled"),N.removeAttribute("disabled"),U.removeAttribute("disabled"),K.removeAttribute("disabled"));mxUtils.setOpacity(G,60);mxUtils.setOpacity(F,60);mxUtils.setOpacity(D,60);mxUtils.setOpacity(E,60);mxUtils.setOpacity(H,60)}else J.style.display="none",
-J.innerHTML="",M.innerHTML="",mxUtils.write(M,mxResources.get("errorLoadingFile")),mxUtils.write(n,mxResources.get("errorLoadingFile"))},g=document.createElement("tr");g.style.borderBottom="1px solid lightGray";g.style.fontSize="12px";g.style.cursor="pointer";var t=document.createElement("td");t.style.padding="6px";t.style.whiteSpace="nowrap";c==e[e.length-1]?mxUtils.write(t,mxResources.get("current")):d.toDateString()===aa?mxUtils.write(t,d.toLocaleTimeString()):mxUtils.write(t,d.toLocaleDateString()+
+if(null==c||""==c||c==mxConstants.NONE)c=f.defaultPageBackgroundColor;k.style.backgroundColor=c;(new mxCodec(b.ownerDocument)).decode(b,f.getModel());f.maxFitScale=1;f.fit(8);f.center();return b};K.style.display="none";K.innerHTML="";y=q;C=e;m=parseSelectFunction=null;p=0;if("mxfile"==t.nodeName){q=t.getElementsByTagName("diagram");m=[];for(e=0;e<q.length;e++)m.push(q[e]);p=Math.min(l,m.length-1);0<m.length&&B(m[p]);if(1<m.length)for(K.removeAttribute("disabled"),K.style.display="",e=0;e<m.length;e++)q=
+document.createElement("option"),mxUtils.write(q,m[e].getAttribute("name")||mxResources.get("pageWithNumber",[e+1])),q.setAttribute("value",e),e==p&&q.setAttribute("selected","selected"),K.appendChild(q);T=function(){try{var c=parseInt(K.value);p=l=c;B(m[c])}catch(X){K.value=l,b.handleError(X)}}}else A(t);e=c.lastModifyingUserName;null!=e&&20<e.length&&(e=e.substring(0,20)+"...");M.innerHTML="";mxUtils.write(M,(null!=e?e+" ":"")+d.toLocaleDateString()+" "+d.toLocaleTimeString());M.setAttribute("title",
+g.getAttribute("title"));D.removeAttribute("disabled");G.removeAttribute("disabled");E.removeAttribute("disabled");F.removeAttribute("disabled");H.removeAttribute("disabled");null!=v&&v.isRestricted()||(b.editor.graph.isEnabled()&&P.removeAttribute("disabled"),N.removeAttribute("disabled"),U.removeAttribute("disabled"),J.removeAttribute("disabled"));mxUtils.setOpacity(D,60);mxUtils.setOpacity(G,60);mxUtils.setOpacity(E,60);mxUtils.setOpacity(F,60);mxUtils.setOpacity(H,60)}else K.style.display="none",
+K.innerHTML="",M.innerHTML="",mxUtils.write(M,mxResources.get("errorLoadingFile")),mxUtils.write(n,mxResources.get("errorLoadingFile"))},g=document.createElement("tr");g.style.borderBottom="1px solid lightGray";g.style.fontSize="12px";g.style.cursor="pointer";var t=document.createElement("td");t.style.padding="6px";t.style.whiteSpace="nowrap";c==e[e.length-1]?mxUtils.write(t,mxResources.get("current")):d.toDateString()===aa?mxUtils.write(t,d.toLocaleTimeString()):mxUtils.write(t,d.toLocaleDateString()+
" "+d.toLocaleTimeString());g.appendChild(t);g.setAttribute("title",d.toLocaleDateString()+" "+d.toLocaleTimeString()+(null!=c.fileSize?" "+b.formatFileSize(parseInt(c.fileSize)):"")+(null!=c.lastModifyingUserName?" "+c.lastModifyingUserName:""));mxEvent.addListener(g,"click",function(b){B!=c&&(u.stop(),null!=z&&(z.style.backgroundColor=""),B=c,z=g,z.style.backgroundColor=Editor.isDarkMode()?"#000000":"#ebf2f9",C=y=null,M.removeAttribute("title"),M.innerHTML=mxUtils.htmlEntities(mxResources.get("loading")+
-"..."),k.style.backgroundColor=f.defaultPageBackgroundColor,n.innerHTML="",f.getModel().clear(),O.setAttribute("disabled","disabled"),N.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"),U.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"),mxUtils.setOpacity(G,20),
-mxUtils.setOpacity(F,20),mxUtils.setOpacity(D,20),mxUtils.setOpacity(E,20),mxUtils.setOpacity(H,20),u.spin(k),c.getXml(function(b){if(B==c)try{q(b)}catch(W){M.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+W.message)}},function(b){u.stop();J.style.display="none";J.innerHTML="";M.innerHTML="";mxUtils.write(M,mxResources.get("errorLoadingFile"));mxUtils.write(n,mxResources.get("errorLoadingFile"))}),mxEvent.consume(b))});mxEvent.addListener(g,"dblclick",function(b){U.click();window.getSelection?
-window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(b)},!1);ka.appendChild(g)}return g}(e[t]);null!=ba&&t==e.length-1&&(S=ba)}Y.appendChild(ka);g.appendChild(Y)}else null==v||null==b.drive&&v.constructor==window.DriveFile||null==b.dropbox&&v.constructor==window.DropboxFile?(k.style.display="none",P.style.display="none",mxUtils.write(g,mxResources.get("notAvailable"))):(k.style.display="none",P.style.display="none",mxUtils.write(g,mxResources.get("noRevisions")));
-this.init=function(){null!=S&&S.click()};g=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});g.className="geBtn";P.appendChild(J);P.appendChild(G);P.appendChild(F);P.appendChild(E);P.appendChild(D);P.appendChild(H);b.editor.cancelFirst?(x.appendChild(g),x.appendChild(N),x.appendChild(K),x.appendChild(O),x.appendChild(U)):(x.appendChild(N),x.appendChild(K),x.appendChild(O),x.appendChild(U),x.appendChild(g));c.appendChild(x);c.appendChild(P);c.appendChild(M);this.container=c},DraftDialog=
+"..."),k.style.backgroundColor=f.defaultPageBackgroundColor,n.innerHTML="",f.getModel().clear(),P.setAttribute("disabled","disabled"),N.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"),G.setAttribute("disabled","disabled"),F.setAttribute("disabled","disabled"),E.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"),J.setAttribute("disabled","disabled"),U.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"),mxUtils.setOpacity(D,20),
+mxUtils.setOpacity(G,20),mxUtils.setOpacity(E,20),mxUtils.setOpacity(F,20),mxUtils.setOpacity(H,20),u.spin(k),c.getXml(function(b){if(B==c)try{q(b)}catch(W){M.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+": "+W.message)}},function(b){u.stop();K.style.display="none";K.innerHTML="";M.innerHTML="";mxUtils.write(M,mxResources.get("errorLoadingFile"));mxUtils.write(n,mxResources.get("errorLoadingFile"))}),mxEvent.consume(b))});mxEvent.addListener(g,"dblclick",function(b){U.click();window.getSelection?
+window.getSelection().removeAllRanges():document.selection&&document.selection.empty();mxEvent.consume(b)},!1);ka.appendChild(g)}return g}(e[t]);null!=ba&&t==e.length-1&&(S=ba)}Y.appendChild(ka);g.appendChild(Y)}else null==v||null==b.drive&&v.constructor==window.DriveFile||null==b.dropbox&&v.constructor==window.DropboxFile?(k.style.display="none",O.style.display="none",mxUtils.write(g,mxResources.get("notAvailable"))):(k.style.display="none",O.style.display="none",mxUtils.write(g,mxResources.get("noRevisions")));
+this.init=function(){null!=S&&S.click()};g=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});g.className="geBtn";O.appendChild(K);O.appendChild(D);O.appendChild(G);O.appendChild(F);O.appendChild(E);O.appendChild(H);b.editor.cancelFirst?(x.appendChild(g),x.appendChild(N),x.appendChild(J),x.appendChild(P),x.appendChild(U)):(x.appendChild(N),x.appendChild(J),x.appendChild(P),x.appendChild(U),x.appendChild(g));c.appendChild(x);c.appendChild(O);c.appendChild(M);this.container=c},DraftDialog=
function(b,e,d,c,g,k,n,f,l){var m=document.createElement("div"),p=document.createElement("div");p.style.marginTop="0px";p.style.whiteSpace="nowrap";p.style.overflow="auto";p.style.lineHeight="normal";mxUtils.write(p,e);m.appendChild(p);var q=document.createElement("select"),t=mxUtils.bind(this,function(){B=mxUtils.parseXml(l[q.value].data);y=b.editor.extractGraphModel(B.documentElement,!0);C=0;this.init()});if(null!=l){q.style.marginLeft="4px";for(e=0;e<l.length;e++){var u=document.createElement("option");
u.setAttribute("value",e);var v=new Date(l[e].created),x=new Date(l[e].modified);mxUtils.write(u,v.toLocaleDateString()+" "+v.toLocaleTimeString()+" - "+(v.toDateString(),x.toDateString(),x.toLocaleDateString())+" "+x.toLocaleTimeString());q.appendChild(u)}p.appendChild(q);mxEvent.addListener(q,"change",t)}null==d&&(d=l[0].data);var A=document.createElement("div");A.style.position="absolute";A.style.border="1px solid lightGray";A.style.marginTop="10px";A.style.left="40px";A.style.right="40px";A.style.top=
-"46px";A.style.bottom="74px";A.style.overflow="hidden";mxEvent.disableContextMenu(A);m.appendChild(A);var z=new Graph(A);z.setEnabled(!1);z.setPanning(!0);z.panningHandler.ignoreCell=!0;z.panningHandler.useLeftButtonForPanning=!0;z.minFitScale=null;z.maxFitScale=null;z.centerZoom=!0;var B=mxUtils.parseXml(d),y=b.editor.extractGraphModel(B.documentElement,!0),C=0,G=null,F=z.getGlobalVariable;z.getGlobalVariable=function(b){return"page"==b&&null!=G&&null!=G[C]?G[C].getAttribute("name"):"pagenumber"==
-b?C+1:"pagecount"==b?null!=G?G.length:1:F.apply(this,arguments)};z.getLinkForCell=function(){return null};d=mxUtils.button("",function(){z.zoomIn()});d.className="geSprite geSprite-zoomin";d.setAttribute("title",mxResources.get("zoomIn"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);p=mxUtils.button("",function(){z.zoomOut()});p.className="geSprite geSprite-zoomout";p.setAttribute("title",mxResources.get("zoomOut"));p.style.outline="none";p.style.border=
+"46px";A.style.bottom="74px";A.style.overflow="hidden";mxEvent.disableContextMenu(A);m.appendChild(A);var z=new Graph(A);z.setEnabled(!1);z.setPanning(!0);z.panningHandler.ignoreCell=!0;z.panningHandler.useLeftButtonForPanning=!0;z.minFitScale=null;z.maxFitScale=null;z.centerZoom=!0;var B=mxUtils.parseXml(d),y=b.editor.extractGraphModel(B.documentElement,!0),C=0,D=null,G=z.getGlobalVariable;z.getGlobalVariable=function(b){return"page"==b&&null!=D&&null!=D[C]?D[C].getAttribute("name"):"pagenumber"==
+b?C+1:"pagecount"==b?null!=D?D.length:1:G.apply(this,arguments)};z.getLinkForCell=function(){return null};d=mxUtils.button("",function(){z.zoomIn()});d.className="geSprite geSprite-zoomin";d.setAttribute("title",mxResources.get("zoomIn"));d.style.outline="none";d.style.border="none";d.style.margin="2px";mxUtils.setOpacity(d,60);p=mxUtils.button("",function(){z.zoomOut()});p.className="geSprite geSprite-zoomout";p.setAttribute("title",mxResources.get("zoomOut"));p.style.outline="none";p.style.border=
"none";p.style.margin="2px";mxUtils.setOpacity(p,60);e=mxUtils.button("",function(){z.maxFitScale=8;z.fit(8);z.center()});e.className="geSprite geSprite-fit";e.setAttribute("title",mxResources.get("fit"));e.style.outline="none";e.style.border="none";e.style.margin="2px";mxUtils.setOpacity(e,60);u=mxUtils.button("",function(){z.zoomActual();z.center()});u.className="geSprite geSprite-actualsize";u.setAttribute("title",mxResources.get("actualSize"));u.style.outline="none";u.style.border="none";u.style.margin=
-"2px";mxUtils.setOpacity(u,60);n=mxUtils.button(n||mxResources.get("discard"),function(){g.apply(this,[q.value,mxUtils.bind(this,function(){null!=q.parentNode&&(q.options[q.selectedIndex].parentNode.removeChild(q.options[q.selectedIndex]),0<q.options.length?(q.value=q.options[0].value,t()):b.hideDialog(!0))})])});n.className="geBtn";var D=document.createElement("select");D.style.maxWidth="80px";D.style.position="relative";D.style.top="-2px";D.style.verticalAlign="bottom";D.style.marginRight="6px";
-D.style.display="none";k=mxUtils.button(k||mxResources.get("edit"),function(){c.apply(this,[q.value])});k.className="geBtn gePrimaryBtn";v=document.createElement("div");v.style.position="absolute";v.style.bottom="30px";v.style.right="40px";v.style.textAlign="right";x=document.createElement("div");x.className="geToolbarContainer";x.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";this.init=function(){function b(b){if(null!=
-b){var c=b.getAttribute("background");if(null==c||""==c||c==mxConstants.NONE)c=Editor.isDarkMode()?"transparent":"#ffffff";A.style.backgroundColor=c;(new mxCodec(b.ownerDocument)).decode(b,z.getModel());z.maxFitScale=1;z.fit(8);z.center()}return b}function c(c){null!=c&&(c=b(Editor.parseDiagramNode(c)));return c}mxEvent.addListener(D,"change",function(b){C=parseInt(D.value);c(G[C]);mxEvent.consume(b)});if("mxfile"==y.nodeName){var f=y.getElementsByTagName("diagram");G=[];for(var d=0;d<f.length;d++)G.push(f[d]);
-0<G.length&&c(G[C]);D.innerHTML="";if(1<G.length)for(D.style.display="",d=0;d<G.length;d++)f=document.createElement("option"),mxUtils.write(f,G[d].getAttribute("name")||mxResources.get("pageWithNumber",[d+1])),f.setAttribute("value",d),d==C&&f.setAttribute("selected","selected"),D.appendChild(f);else D.style.display="none"}else b(y)};x.appendChild(D);x.appendChild(d);x.appendChild(p);x.appendChild(u);x.appendChild(e);d=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});d.className=
+"2px";mxUtils.setOpacity(u,60);n=mxUtils.button(n||mxResources.get("discard"),function(){g.apply(this,[q.value,mxUtils.bind(this,function(){null!=q.parentNode&&(q.options[q.selectedIndex].parentNode.removeChild(q.options[q.selectedIndex]),0<q.options.length?(q.value=q.options[0].value,t()):b.hideDialog(!0))})])});n.className="geBtn";var E=document.createElement("select");E.style.maxWidth="80px";E.style.position="relative";E.style.top="-2px";E.style.verticalAlign="bottom";E.style.marginRight="6px";
+E.style.display="none";k=mxUtils.button(k||mxResources.get("edit"),function(){c.apply(this,[q.value])});k.className="geBtn gePrimaryBtn";v=document.createElement("div");v.style.position="absolute";v.style.bottom="30px";v.style.right="40px";v.style.textAlign="right";x=document.createElement("div");x.className="geToolbarContainer";x.style.cssText="box-shadow:none !important;background-color:transparent;padding:2px;border-style:none !important;bottom:30px;";this.init=function(){function b(b){if(null!=
+b){var c=b.getAttribute("background");if(null==c||""==c||c==mxConstants.NONE)c=Editor.isDarkMode()?"transparent":"#ffffff";A.style.backgroundColor=c;(new mxCodec(b.ownerDocument)).decode(b,z.getModel());z.maxFitScale=1;z.fit(8);z.center()}return b}function c(c){null!=c&&(c=b(Editor.parseDiagramNode(c)));return c}mxEvent.addListener(E,"change",function(b){C=parseInt(E.value);c(D[C]);mxEvent.consume(b)});if("mxfile"==y.nodeName){var f=y.getElementsByTagName("diagram");D=[];for(var d=0;d<f.length;d++)D.push(f[d]);
+0<D.length&&c(D[C]);E.innerHTML="";if(1<D.length)for(E.style.display="",d=0;d<D.length;d++)f=document.createElement("option"),mxUtils.write(f,D[d].getAttribute("name")||mxResources.get("pageWithNumber",[d+1])),f.setAttribute("value",d),d==C&&f.setAttribute("selected","selected"),E.appendChild(f);else E.style.display="none"}else b(y)};x.appendChild(E);x.appendChild(d);x.appendChild(p);x.appendChild(u);x.appendChild(e);d=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});d.className=
"geBtn";f=null!=f?mxUtils.button(mxResources.get("ignore"),f):null;null!=f&&(f.className="geBtn");b.editor.cancelFirst?(v.appendChild(d),null!=f&&v.appendChild(f),v.appendChild(n),v.appendChild(k)):(v.appendChild(k),v.appendChild(n),null!=f&&v.appendChild(f),v.appendChild(d));m.appendChild(v);m.appendChild(x);this.container=m},FindWindow=function(b,e,d,c,g,k){function n(b,c,f,d){if("object"===typeof c.value&&null!=c.value.attributes){c=c.value.attributes;for(var e=0;e<c.length;e++)if("label"!=c[e].nodeName){var l=
-mxUtils.trim(c[e].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==b&&(d&&0<=l.indexOf(f)||!d&&l.substring(0,f.length)===f)||null!=b&&b.test(l))return!0}}return!1}function f(){u&&G.value?(N.removeAttribute("disabled"),O.removeAttribute("disabled")):(N.setAttribute("disabled","disabled"),O.setAttribute("disabled","disabled"));G.value&&C.value?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}function l(c,d,e){L.innerHTML="";var m=p.model.getDescendants(p.model.getRoot()),
-g=C.value.toLowerCase(),y=F.checked?new RegExp(g):null,J=null;x=null;q!=g&&(q=g,t=null,v=!1);var B=null==t;if(0<g.length){if(v){v=!1;for(var K,T=0;T<b.pages.length;T++)if(b.currentPage==b.pages[T]){K=T;break}c=(K+1)%b.pages.length;t=null;do v=!1,m=b.pages[c],p=b.createTemporaryGraph(p.getStylesheet()),b.updatePageRoot(m),p.model.setRoot(m.root),c=(c+1)%b.pages.length;while(!l(!0,d,e)&&c!=K);t&&(t=null,e?b.editor.graph.model.execute(new SelectPage(b,m)):b.selectPage(m));v=!1;p=b.editor.graph;return l(!0,
-d,e)}for(T=0;T<m.length;T++){K=p.view.getState(m[T]);d&&null!=y&&(B=B||K==t);if(null!=K&&null!=K.cell.value&&(B||null==J)&&(p.model.isVertex(K.cell)||p.model.isEdge(K.cell))){null!=K.style&&"1"==K.style.html?(E.innerHTML=p.sanitizeHtml(p.getLabel(K.cell)),label=mxUtils.extractTextWithWhitespace([E])):label=p.getLabel(K.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var P=0;d&&k&&null!=y&&K==t&&(label=label.substr(A),P=A);var z=""==G.value,M=z;if(null==y&&(M&&
-0<=label.indexOf(g)||!M&&label.substring(0,g.length)===g||z&&n(y,K.cell,g,M))||null!=y&&(y.test(label)||z&&n(y,K.cell,g,M)))if(k&&(null!=y?(z=label.match(y),x=z[0].toLowerCase(),A=P+z.index+x.length):(x=g,A=x.length)),B){J=K;break}else null==J&&(J=K)}B=B||K==t}}if(null!=J){if(T==m.length&&D.checked)return t=null,v=!0,l(!0,d,e);t=J;p.scrollCellToVisible(t.cell);p.isEnabled()&&!p.isCellLocked(t.cell)?e||p.getSelectionCell()==t.cell&&1==p.getSelectionCount()||p.setSelectionCell(t.cell):p.highlightCell(t.cell)}else{if(!c&&
-D.checked)return v=!0,l(!0,d,e);p.isEnabled()&&!e&&p.clearSelection()}u=null!=J;k&&!c&&f();return 0==g.length||null!=J}var m=b.actions.get("findReplace"),p=b.editor.graph,q=null,t=null,u=!1,v=!1,x=null,A=0,z=1,B=document.createElement("div");B.style.userSelect="none";B.style.overflow="hidden";B.style.padding="10px";B.style.height="100%";var y=k?"260px":"200px",C=document.createElement("input");C.setAttribute("placeholder",mxResources.get("find"));C.setAttribute("type","text");C.style.marginTop="4px";
-C.style.marginBottom="6px";C.style.width=y;C.style.fontSize="12px";C.style.borderRadius="4px";C.style.padding="6px";B.appendChild(C);mxUtils.br(B);var G;k&&(G=document.createElement("input"),G.setAttribute("placeholder",mxResources.get("replaceWith")),G.setAttribute("type","text"),G.style.marginTop="4px",G.style.marginBottom="6px",G.style.width=y,G.style.fontSize="12px",G.style.borderRadius="4px",G.style.padding="6px",B.appendChild(G),mxUtils.br(B),mxEvent.addListener(G,"input",f));var F=document.createElement("input");
-F.setAttribute("id","geFindWinRegExChck");F.setAttribute("type","checkbox");F.style.marginRight="4px";B.appendChild(F);y=document.createElement("label");y.setAttribute("for","geFindWinRegExChck");B.appendChild(y);mxUtils.write(y,mxResources.get("regularExpression"));B.appendChild(y);y=b.menus.createHelpLink("https://www.diagrams.net/doc/faq/find-shapes");y.style.position="relative";y.style.marginLeft="6px";y.style.top="-1px";B.appendChild(y);mxUtils.br(B);var D=document.createElement("input");D.setAttribute("id",
-"geFindWinAllPagesChck");D.setAttribute("type","checkbox");D.style.marginRight="4px";B.appendChild(D);y=document.createElement("label");y.setAttribute("for","geFindWinAllPagesChck");B.appendChild(y);mxUtils.write(y,mxResources.get("allPages"));B.appendChild(y);var E=document.createElement("div");mxUtils.br(B);y=document.createElement("div");y.style.left="0px";y.style.right="0px";y.style.marginTop="6px";y.style.padding="0 6px 0 6px";y.style.textAlign="center";B.appendChild(y);var H=mxUtils.button(mxResources.get("reset"),
-function(){L.innerHTML="";C.value="";C.style.backgroundColor="";k&&(G.value="",f());q=t=null;v=!1;C.focus()});H.setAttribute("title",mxResources.get("reset"));H.style["float"]="none";H.style.width="120px";H.style.marginTop="6px";H.style.marginLeft="8px";H.style.overflow="hidden";H.style.textOverflow="ellipsis";H.className="geBtn";k||y.appendChild(H);var I=mxUtils.button(mxResources.get("find"),function(){try{C.style.backgroundColor=l()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(K){b.handleError(K)}});
+mxUtils.trim(c[e].nodeValue.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();if(null==b&&(d&&0<=l.indexOf(f)||!d&&l.substring(0,f.length)===f)||null!=b&&b.test(l))return!0}}return!1}function f(){u&&D.value?(N.removeAttribute("disabled"),P.removeAttribute("disabled")):(N.setAttribute("disabled","disabled"),P.setAttribute("disabled","disabled"));D.value&&C.value?K.removeAttribute("disabled"):K.setAttribute("disabled","disabled")}function l(c,d,e){L.innerHTML="";var m=p.model.getDescendants(p.model.getRoot()),
+g=C.value.toLowerCase(),y=G.checked?new RegExp(g):null,K=null;x=null;q!=g&&(q=g,t=null,v=!1);var B=null==t;if(0<g.length){if(v){v=!1;for(var J,T=0;T<b.pages.length;T++)if(b.currentPage==b.pages[T]){J=T;break}c=(J+1)%b.pages.length;t=null;do v=!1,m=b.pages[c],p=b.createTemporaryGraph(p.getStylesheet()),b.updatePageRoot(m),p.model.setRoot(m.root),c=(c+1)%b.pages.length;while(!l(!0,d,e)&&c!=J);t&&(t=null,e?b.editor.graph.model.execute(new SelectPage(b,m)):b.selectPage(m));v=!1;p=b.editor.graph;return l(!0,
+d,e)}for(T=0;T<m.length;T++){J=p.view.getState(m[T]);d&&null!=y&&(B=B||J==t);if(null!=J&&null!=J.cell.value&&(B||null==K)&&(p.model.isVertex(J.cell)||p.model.isEdge(J.cell))){null!=J.style&&"1"==J.style.html?(F.innerHTML=p.sanitizeHtml(p.getLabel(J.cell)),label=mxUtils.extractTextWithWhitespace([F])):label=p.getLabel(J.cell);label=mxUtils.trim(label.replace(/[\x00-\x1F\x7F-\x9F]|\s+/g," ")).toLowerCase();var O=0;d&&k&&null!=y&&J==t&&(label=label.substr(A),O=A);var z=""==D.value,M=z;if(null==y&&(M&&
+0<=label.indexOf(g)||!M&&label.substring(0,g.length)===g||z&&n(y,J.cell,g,M))||null!=y&&(y.test(label)||z&&n(y,J.cell,g,M)))if(k&&(null!=y?(z=label.match(y),x=z[0].toLowerCase(),A=O+z.index+x.length):(x=g,A=x.length)),B){K=J;break}else null==K&&(K=J)}B=B||J==t}}if(null!=K){if(T==m.length&&E.checked)return t=null,v=!0,l(!0,d,e);t=K;p.scrollCellToVisible(t.cell);p.isEnabled()&&!p.isCellLocked(t.cell)?e||p.getSelectionCell()==t.cell&&1==p.getSelectionCount()||p.setSelectionCell(t.cell):p.highlightCell(t.cell)}else{if(!c&&
+E.checked)return v=!0,l(!0,d,e);p.isEnabled()&&!e&&p.clearSelection()}u=null!=K;k&&!c&&f();return 0==g.length||null!=K}var m=b.actions.get("findReplace"),p=b.editor.graph,q=null,t=null,u=!1,v=!1,x=null,A=0,z=1,B=document.createElement("div");B.style.userSelect="none";B.style.overflow="hidden";B.style.padding="10px";B.style.height="100%";var y=k?"260px":"200px",C=document.createElement("input");C.setAttribute("placeholder",mxResources.get("find"));C.setAttribute("type","text");C.style.marginTop="4px";
+C.style.marginBottom="6px";C.style.width=y;C.style.fontSize="12px";C.style.borderRadius="4px";C.style.padding="6px";B.appendChild(C);mxUtils.br(B);var D;k&&(D=document.createElement("input"),D.setAttribute("placeholder",mxResources.get("replaceWith")),D.setAttribute("type","text"),D.style.marginTop="4px",D.style.marginBottom="6px",D.style.width=y,D.style.fontSize="12px",D.style.borderRadius="4px",D.style.padding="6px",B.appendChild(D),mxUtils.br(B),mxEvent.addListener(D,"input",f));var G=document.createElement("input");
+G.setAttribute("id","geFindWinRegExChck");G.setAttribute("type","checkbox");G.style.marginRight="4px";B.appendChild(G);y=document.createElement("label");y.setAttribute("for","geFindWinRegExChck");B.appendChild(y);mxUtils.write(y,mxResources.get("regularExpression"));B.appendChild(y);y=b.menus.createHelpLink("https://www.diagrams.net/doc/faq/find-shapes");y.style.position="relative";y.style.marginLeft="6px";y.style.top="-1px";B.appendChild(y);mxUtils.br(B);var E=document.createElement("input");E.setAttribute("id",
+"geFindWinAllPagesChck");E.setAttribute("type","checkbox");E.style.marginRight="4px";B.appendChild(E);y=document.createElement("label");y.setAttribute("for","geFindWinAllPagesChck");B.appendChild(y);mxUtils.write(y,mxResources.get("allPages"));B.appendChild(y);var F=document.createElement("div");mxUtils.br(B);y=document.createElement("div");y.style.left="0px";y.style.right="0px";y.style.marginTop="6px";y.style.padding="0 6px 0 6px";y.style.textAlign="center";B.appendChild(y);var H=mxUtils.button(mxResources.get("reset"),
+function(){L.innerHTML="";C.value="";C.style.backgroundColor="";k&&(D.value="",f());q=t=null;v=!1;C.focus()});H.setAttribute("title",mxResources.get("reset"));H.style["float"]="none";H.style.width="120px";H.style.marginTop="6px";H.style.marginLeft="8px";H.style.overflow="hidden";H.style.textOverflow="ellipsis";H.className="geBtn";k||y.appendChild(H);var I=mxUtils.button(mxResources.get("find"),function(){try{C.style.backgroundColor=l()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(J){b.handleError(J)}});
I.setAttribute("title",mxResources.get("find")+" (Enter)");I.style["float"]="none";I.style.width="120px";I.style.marginTop="6px";I.style.marginLeft="8px";I.style.overflow="hidden";I.style.textOverflow="ellipsis";I.className="geBtn gePrimaryBtn";y.appendChild(I);var L=document.createElement("div");L.style.marginTop="10px";if(k){var M=function(b,c,f,d,e){if(null==e||"1"!=e.html)return d=b.toLowerCase().indexOf(c,d),0>d?b:b.substr(0,d)+f+b.substr(d+c.length);var l=b;c=mxUtils.htmlEntities(c);e=[];var m=
-1;for(b=b.replace(/<br>/ig,"\n");-1<(m=b.indexOf("<",m+1));)e.push(m);m=b.match(/<[^>]*>/g);b=b.replace(/<[^>]*>/g,"");d=b.toLowerCase().indexOf(c,d);if(0>d)return l;l=d+c.length;f=mxUtils.htmlEntities(f);b=b.substr(0,d)+f+b.substr(l);for(var g=0,p=0;p<e.length;p++){if(e[p]-g<d)b=b.substr(0,e[p])+m[p]+b.substr(e[p]);else{var k=e[p]-g<l?d+g:e[p]+(f.length-c.length);b=b.substr(0,k)+m[p]+b.substr(k)}g+=m[p].length}return b.replace(/\n/g,"<br>")},N=mxUtils.button(mxResources.get("replFind"),function(){try{if(null!=
-x&&null!=t&&G.value){var c=t.cell,f=p.getLabel(c);p.isCellEditable(c)&&p.model.setValue(c,M(f,x,G.value,A-x.length,p.getCurrentCellStyle(c)));C.style.backgroundColor=l(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(P){b.handleError(P)}});N.setAttribute("title",mxResources.get("replFind"));N.style["float"]="none";N.style.width="120px";N.style.marginTop="6px";N.style.marginLeft="8px";N.style.overflow="hidden";N.style.textOverflow="ellipsis";N.className="geBtn gePrimaryBtn";N.setAttribute("disabled",
-"disabled");y.appendChild(N);mxUtils.br(y);var O=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=x&&null!=t&&G.value){var c=t.cell,f=p.getLabel(c);p.model.setValue(c,M(f,x,G.value,A-x.length,p.getCurrentCellStyle(c)));N.setAttribute("disabled","disabled");O.setAttribute("disabled","disabled")}}catch(P){b.handleError(P)}});O.setAttribute("title",mxResources.get("replace"));O.style["float"]="none";O.style.width="120px";O.style.marginTop="6px";O.style.marginLeft="8px";O.style.overflow=
-"hidden";O.style.textOverflow="ellipsis";O.className="geBtn gePrimaryBtn";O.setAttribute("disabled","disabled");y.appendChild(O);var J=mxUtils.button(mxResources.get("replaceAll"),function(){L.innerHTML="";if(G.value){var c=b.currentPage,f=b.editor.graph.getSelectionCells();b.editor.graph.rendering=!1;p.getModel().beginUpdate();try{for(var d=0,e={};l(!1,!0,!0)&&100>d;){var m=t.cell,g=p.getLabel(m),k=e[m.id];if(k&&k.replAllMrk==z&&k.replAllPos>=A)break;e[m.id]={replAllMrk:z,replAllPos:A};p.isCellEditable(m)&&
-(p.model.setValue(m,M(g,x,G.value,A-x.length,p.getCurrentCellStyle(m))),d++)}c!=b.currentPage&&b.editor.graph.model.execute(new SelectPage(b,c));mxUtils.write(L,mxResources.get("matchesRepl",[d]))}catch(ba){b.handleError(ba)}finally{p.getModel().endUpdate(),b.editor.graph.setSelectionCells(f),b.editor.graph.rendering=!0}z++}});J.setAttribute("title",mxResources.get("replaceAll"));J.style["float"]="none";J.style.width="120px";J.style.marginTop="6px";J.style.marginLeft="8px";J.style.overflow="hidden";
-J.style.textOverflow="ellipsis";J.className="geBtn gePrimaryBtn";J.setAttribute("disabled","disabled");y.appendChild(J);mxUtils.br(y);y.appendChild(H);H=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));H.setAttribute("title",mxResources.get("close"));H.style["float"]="none";H.style.width="120px";H.style.marginTop="6px";H.style.marginLeft="8px";H.style.overflow="hidden";H.style.textOverflow="ellipsis";H.className="geBtn";y.appendChild(H);mxUtils.br(y);
+x&&null!=t&&D.value){var c=t.cell,f=p.getLabel(c);p.isCellEditable(c)&&p.model.setValue(c,M(f,x,D.value,A-x.length,p.getCurrentCellStyle(c)));C.style.backgroundColor=l(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(O){b.handleError(O)}});N.setAttribute("title",mxResources.get("replFind"));N.style["float"]="none";N.style.width="120px";N.style.marginTop="6px";N.style.marginLeft="8px";N.style.overflow="hidden";N.style.textOverflow="ellipsis";N.className="geBtn gePrimaryBtn";N.setAttribute("disabled",
+"disabled");y.appendChild(N);mxUtils.br(y);var P=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=x&&null!=t&&D.value){var c=t.cell,f=p.getLabel(c);p.model.setValue(c,M(f,x,D.value,A-x.length,p.getCurrentCellStyle(c)));N.setAttribute("disabled","disabled");P.setAttribute("disabled","disabled")}}catch(O){b.handleError(O)}});P.setAttribute("title",mxResources.get("replace"));P.style["float"]="none";P.style.width="120px";P.style.marginTop="6px";P.style.marginLeft="8px";P.style.overflow=
+"hidden";P.style.textOverflow="ellipsis";P.className="geBtn gePrimaryBtn";P.setAttribute("disabled","disabled");y.appendChild(P);var K=mxUtils.button(mxResources.get("replaceAll"),function(){L.innerHTML="";if(D.value){var c=b.currentPage,f=b.editor.graph.getSelectionCells();b.editor.graph.rendering=!1;p.getModel().beginUpdate();try{for(var d=0,e={};l(!1,!0,!0)&&100>d;){var m=t.cell,g=p.getLabel(m),k=e[m.id];if(k&&k.replAllMrk==z&&k.replAllPos>=A)break;e[m.id]={replAllMrk:z,replAllPos:A};p.isCellEditable(m)&&
+(p.model.setValue(m,M(g,x,D.value,A-x.length,p.getCurrentCellStyle(m))),d++)}c!=b.currentPage&&b.editor.graph.model.execute(new SelectPage(b,c));mxUtils.write(L,mxResources.get("matchesRepl",[d]))}catch(ba){b.handleError(ba)}finally{p.getModel().endUpdate(),b.editor.graph.setSelectionCells(f),b.editor.graph.rendering=!0}z++}});K.setAttribute("title",mxResources.get("replaceAll"));K.style["float"]="none";K.style.width="120px";K.style.marginTop="6px";K.style.marginLeft="8px";K.style.overflow="hidden";
+K.style.textOverflow="ellipsis";K.className="geBtn gePrimaryBtn";K.setAttribute("disabled","disabled");y.appendChild(K);mxUtils.br(y);y.appendChild(H);H=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));H.setAttribute("title",mxResources.get("close"));H.style["float"]="none";H.style.width="120px";H.style.marginTop="6px";H.style.marginLeft="8px";H.style.overflow="hidden";H.style.textOverflow="ellipsis";H.className="geBtn";y.appendChild(H);mxUtils.br(y);
y.appendChild(L)}else H.style.width="90px",I.style.width="90px";mxEvent.addListener(C,"keyup",function(b){if(91==b.keyCode||93==b.keyCode||17==b.keyCode)mxEvent.consume(b);else if(27==b.keyCode)m.funct();else if(q!=C.value.toLowerCase()||13==b.keyCode)try{C.style.backgroundColor=l()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(U){C.style.backgroundColor=Editor.isDarkMode()?"#ff0000":"#ffcfcf"}});mxEvent.addListener(B,"keydown",function(c){70==c.keyCode&&b.keyHandler.isControlDown(c)&&!mxEvent.isShiftDown(c)&&
(m.funct(),mxEvent.consume(c))});this.window=new mxWindow(mxResources.get("find")+(k?"/"+mxResources.get("replace"):""),B,e,d,c,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit();this.window.isVisible()?(C.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?C.select():document.execCommand("selectAll",!1,null),null!=b.pages&&1<b.pages.length?
-D.removeAttribute("disabled"):(D.checked=!1,D.setAttribute("disabled","disabled"))):p.container.focus()}));this.window.setLocation=function(b,c){var f=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,f-this.table.clientHeight-("1"==urlParams.sketch?3:48)));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,
+E.removeAttribute("disabled"):(E.checked=!1,E.setAttribute("disabled","disabled"))):p.container.focus()}));this.window.setLocation=function(b,c){var f=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,f-this.table.clientHeight-("1"==urlParams.sketch?3:48)));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,
arguments)};var T=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",T);this.destroy=function(){mxEvent.removeListener(window,"resize",T);this.window.destroy()}},FreehandWindow=function(b,e,d,c,g){var k=b.editor.graph;b=document.createElement("div");b.style.textAlign="center";b.style.userSelect="none";b.style.overflow="hidden";b.style.height="100%";var n=mxUtils.button(mxResources.get("startDrawing"),function(){k.freehand.isDrawing()?
k.freehand.stopDrawing():k.freehand.startDrawing()});n.setAttribute("title",mxResources.get("startDrawing"));n.style.marginTop="10px";n.style.width="90%";n.style.boxSizing="border-box";n.style.overflow="hidden";n.style.textOverflow="ellipsis";n.style.textAlign="center";n.className="geBtn gePrimaryBtn";b.appendChild(n);this.window=new mxWindow(mxResources.get("freehand"),b,e,d,c,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);
k.addListener("freehandStateChanged",mxUtils.bind(this,function(){n.innerHTML="";mxUtils.write(n,mxResources.get(k.freehand.isDrawing()?"stopDrawing":"startDrawing"));n.setAttribute("title",mxResources.get(k.freehand.isDrawing()?"stopDrawing":"startDrawing"));n.className="geBtn"+(k.freehand.isDrawing()?"":" gePrimaryBtn")}));this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));this.window.addListener("hide",mxUtils.bind(this,function(){k.freehand.isDrawing()&&k.freehand.stopDrawing()}));
@@ -10376,28 +10378,28 @@ document.createElement("td");mxUtils.write(l,mxResources.get("height")+":");var
1==e.length?mxUtils.getValue(d.getCellStyle(e[0]),mxConstants.STYLE_ROTATION,0):"";m.appendChild(z);f.appendChild(l);f.appendChild(m);n.appendChild(f);k.appendChild(n);g.appendChild(k);c=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});c.className="geBtn";var B=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();d.getModel().beginUpdate();try{for(var c=0;c<e.length;c++){var f=d.getCellGeometry(e[c]);null!=f&&(f=f.clone(),d.isCellMovable(e[c])&&(f.relative=p.checked,
0<mxUtils.trim(q.value).length&&(f.x=Number(q.value)),0<mxUtils.trim(t.value).length&&(f.y=Number(t.value)),0<mxUtils.trim(u.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.x=Number(u.value)),0<mxUtils.trim(v.value).length&&(null==f.offset&&(f.offset=new mxPoint),f.offset.y=Number(v.value))),d.isCellResizable(e[c])&&(0<mxUtils.trim(x.value).length&&(f.width=Number(x.value)),0<mxUtils.trim(A.value).length&&(f.height=Number(A.value))),d.getModel().setGeometry(e[c],f));0<mxUtils.trim(z.value).length&&
d.setCellStyles(mxConstants.STYLE_ROTATION,Number(z.value),[e[c]])}}finally{d.getModel().endUpdate()}});B.className="geBtn gePrimaryBtn";mxEvent.addListener(g,"keypress",function(b){13==b.keyCode&&B.click()});k=document.createElement("div");k.style.marginTop="20px";k.style.textAlign="right";b.editor.cancelFirst?(k.appendChild(c),k.appendChild(B)):(k.appendChild(B),k.appendChild(c));g.appendChild(k);this.container=g},LibraryDialog=function(b,e,d,c,g,k){function n(b){for(b=document.elementFromPoint(b.clientX,
-b.clientY);null!=b&&b.parentNode!=u;)b=b.parentNode;var c=null;if(null!=b)for(var f=u.firstChild,c=0;null!=f&&f!=b;)f=f.nextSibling,c++;return c}function f(c,d,e,l,m,g,k,q,t){try{if(b.spinner.stop(),null==d||"image/"==d.substring(0,6))if(null==c&&null!=k||null==x[c]){var J=function(){F.innerHTML="";F.style.cursor="pointer";F.style.whiteSpace="nowrap";F.style.textOverflow="ellipsis";mxUtils.write(F,null!=H.title&&0<H.title.length?H.title:mxResources.get("untitled"));F.style.color=null==H.title||0==
-H.title.length?"#d0d0d0":""};u.style.backgroundImage="";v.style.display="none";var K=m,E=g;if(m>b.maxImageSize||g>b.maxImageSize){var D=Math.min(1,Math.min(b.maxImageSize/Math.max(1,m)),b.maxImageSize/Math.max(1,g));m*=D;g*=D}K>E?(E=Math.round(100*E/K),K=100):(K=Math.round(100*K/E),E=100);var z=document.createElement("div");z.setAttribute("draggable","true");z.style.display="inline-block";z.style.position="relative";z.style.padding="0 12px";z.style.cursor="move";mxUtils.setPrefixedStyle(z.style,"transition",
-"transform .1s ease-in-out");if(null!=c){var M=document.createElement("img");M.setAttribute("src",y.convert(c));M.style.width=K+"px";M.style.height=E+"px";M.style.margin="10px";M.style.paddingBottom=Math.floor((100-E)/2)+"px";M.style.paddingLeft=Math.floor((100-K)/2)+"px";z.appendChild(M)}else if(null!=k){var G=b.stringToCells(Graph.decompress(k.xml));0<G.length&&(b.sidebar.createThumb(G,100,100,z,null,!0,!1),z.firstChild.style.display="inline-block",z.firstChild.style.cursor="")}var I=document.createElement("img");
+b.clientY);null!=b&&b.parentNode!=u;)b=b.parentNode;var c=null;if(null!=b)for(var f=u.firstChild,c=0;null!=f&&f!=b;)f=f.nextSibling,c++;return c}function f(c,d,e,l,m,g,k,q,t){try{if(b.spinner.stop(),null==d||"image/"==d.substring(0,6))if(null==c&&null!=k||null==x[c]){var K=function(){D.innerHTML="";D.style.cursor="pointer";D.style.whiteSpace="nowrap";D.style.textOverflow="ellipsis";mxUtils.write(D,null!=G.title&&0<G.title.length?G.title:mxResources.get("untitled"));D.style.color=null==G.title||0==
+G.title.length?"#d0d0d0":""};u.style.backgroundImage="";v.style.display="none";var J=m,F=g;if(m>b.maxImageSize||g>b.maxImageSize){var O=Math.min(1,Math.min(b.maxImageSize/Math.max(1,m)),b.maxImageSize/Math.max(1,g));m*=O;g*=O}J>F?(F=Math.round(100*F/J),J=100):(J=Math.round(100*J/F),F=100);var E=document.createElement("div");E.setAttribute("draggable","true");E.style.display="inline-block";E.style.position="relative";E.style.padding="0 12px";E.style.cursor="move";mxUtils.setPrefixedStyle(E.style,"transition",
+"transform .1s ease-in-out");if(null!=c){var z=document.createElement("img");z.setAttribute("src",y.convert(c));z.style.width=J+"px";z.style.height=F+"px";z.style.margin="10px";z.style.paddingBottom=Math.floor((100-F)/2)+"px";z.style.paddingLeft=Math.floor((100-J)/2)+"px";E.appendChild(z)}else if(null!=k){var M=b.stringToCells(Graph.decompress(k.xml));0<M.length&&(b.sidebar.createThumb(M,100,100,E,null,!0,!1),E.firstChild.style.display="inline-block",E.firstChild.style.cursor="")}var I=document.createElement("img");
I.setAttribute("src",Editor.closeBlackImage);I.setAttribute("border","0");I.setAttribute("title",mxResources.get("delete"));I.setAttribute("align","top");I.style.paddingTop="4px";I.style.position="absolute";I.style.marginLeft="-12px";I.style.zIndex="1";I.style.cursor="pointer";mxEvent.addListener(I,"dragstart",function(b){mxEvent.consume(b)});(function(b,c,f){mxEvent.addListener(I,"click",function(d){x[c]=null;for(var e=0;e<p.length;e++)if(null!=p[e].data&&p[e].data==c||null!=p[e].xml&&null!=f&&p[e].xml==
-f.xml){p.splice(e,1);break}z.parentNode.removeChild(b);0==p.length&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",v.style.display="");mxEvent.consume(d)});mxEvent.addListener(I,"dblclick",function(b){mxEvent.consume(b)})})(z,c,k);z.appendChild(I);z.style.marginBottom="30px";var F=document.createElement("div");F.style.position="absolute";F.style.boxSizing="border-box";F.style.bottom="-18px";F.style.left="10px";F.style.right="10px";F.style.backgroundColor=Editor.isDarkMode()?Editor.darkColor:
-"#ffffff";F.style.overflow="hidden";F.style.textAlign="center";var H=null;null!=c?(H={data:c,w:m,h:g,title:t},null!=q&&(H.aspect=q),x[c]=M,p.push(H)):null!=k&&(k.aspect="fixed",p.push(k),H=k);mxEvent.addListener(F,"keydown",function(b){13==b.keyCode&&null!=B&&(B(),B=null,mxEvent.consume(b))});J();z.appendChild(F);mxEvent.addListener(F,"mousedown",function(b){"true"!=F.getAttribute("contentEditable")&&mxEvent.consume(b)});G=function(c){if(mxClient.IS_IOS||mxClient.IS_FF||!(null==document.documentMode||
-9<document.documentMode)){var f=new FilenameDialog(b,H.title||"",mxResources.get("ok"),function(b){null!=b&&(H.title=b,J())},mxResources.get("enterValue"));b.showDialog(f.container,300,80,!0,!0);f.init();mxEvent.consume(c)}else if("true"!=F.getAttribute("contentEditable")){null!=B&&(B(),B=null);if(null==H.title||0==H.title.length)F.innerHTML="";F.style.textOverflow="";F.style.whiteSpace="";F.style.cursor="text";F.style.color="";F.setAttribute("contentEditable","true");mxUtils.setPrefixedStyle(F.style,
-"user-select","text");F.focus();document.execCommand("selectAll",!1,null);B=function(){F.removeAttribute("contentEditable");F.style.cursor="pointer";H.title=F.innerHTML;J()};mxEvent.consume(c)}};mxEvent.addListener(F,"click",G);mxEvent.addListener(z,"dblclick",G);u.appendChild(z);mxEvent.addListener(z,"dragstart",function(b){null==c&&null!=k&&(I.style.visibility="hidden",F.style.visibility="hidden");mxClient.IS_FF&&null!=k.xml&&b.dataTransfer.setData("Text",k.xml);A=n(b);mxClient.IS_GC&&(z.style.opacity=
-"0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(z.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(z,30);I.style.visibility="";F.style.visibility=""},0)});mxEvent.addListener(z,"dragend",function(b){"hidden"==I.style.visibility&&(I.style.visibility="",F.style.visibility="");A=null;mxUtils.setOpacity(z,100);mxUtils.setPrefixedStyle(z.style,"transform",null)})}else C||(C=!0,b.handleError({message:mxResources.get("fileExists")}));else{m=!1;try{if(K=mxUtils.parseXml(c),"mxlibrary"==
-K.documentElement.nodeName){E=JSON.parse(mxUtils.getTextContent(K.documentElement));if(null!=E&&0<E.length)for(var N=0;N<E.length;N++)null!=E[N].xml?f(null,null,0,0,0,0,E[N]):f(E[N].data,null,0,0,E[N].w,E[N].h,null,"fixed",E[N].title);m=!0}else if("mxfile"==K.documentElement.nodeName){for(var L=K.documentElement.getElementsByTagName("diagram"),N=0;N<L.length;N++){var E=mxUtils.getTextContent(L[N]),G=b.stringToCells(Graph.decompress(E)),O=b.editor.graph.getBoundingBoxFromGeometry(G);f(null,null,0,
-0,0,0,{xml:E,w:O.width,h:O.height})}m=!0}}catch(Q){}m||(b.spinner.stop(),b.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(Q){}return null}function l(b){b.dataTransfer.dropEffect=null!=A?"move":"copy";b.stopPropagation();b.preventDefault()}function m(c){c.stopPropagation();c.preventDefault();C=!1;z=n(c);if(null!=A)null!=z&&z<u.children.length?(p.splice(z>A?z-1:z,0,p.splice(A,1)[0]),u.insertBefore(u.children[A],u.children[z])):(p.push(p.splice(A,1)[0]),u.appendChild(u.children[A]));
-else if(0<c.dataTransfer.files.length)b.importFiles(c.dataTransfer.files,0,0,b.maxImageSize,G(c));else if(0<=mxUtils.indexOf(c.dataTransfer.types,"text/uri-list")){var d=decodeURIComponent(c.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(d)||/(\.png)($|\?)/i.test(d)||/(\.gif)($|\?)/i.test(d)||/(\.svg)($|\?)/i.test(d))&&b.loadImage(d,function(b){f(d,null,0,0,b.width,b.height);u.scrollTop=u.scrollHeight})}c.stopPropagation();c.preventDefault()}var p=[];d=document.createElement("div");
+f.xml){p.splice(e,1);break}E.parentNode.removeChild(b);0==p.length&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",v.style.display="");mxEvent.consume(d)});mxEvent.addListener(I,"dblclick",function(b){mxEvent.consume(b)})})(E,c,k);E.appendChild(I);E.style.marginBottom="30px";var D=document.createElement("div");D.style.position="absolute";D.style.boxSizing="border-box";D.style.bottom="-18px";D.style.left="10px";D.style.right="10px";D.style.backgroundColor=Editor.isDarkMode()?Editor.darkColor:
+"#ffffff";D.style.overflow="hidden";D.style.textAlign="center";var G=null;null!=c?(G={data:c,w:m,h:g,title:t},null!=q&&(G.aspect=q),x[c]=z,p.push(G)):null!=k&&(k.aspect="fixed",p.push(k),G=k);mxEvent.addListener(D,"keydown",function(b){13==b.keyCode&&null!=B&&(B(),B=null,mxEvent.consume(b))});K();E.appendChild(D);mxEvent.addListener(D,"mousedown",function(b){"true"!=D.getAttribute("contentEditable")&&mxEvent.consume(b)});M=function(c){if(mxClient.IS_IOS||mxClient.IS_FF||!(null==document.documentMode||
+9<document.documentMode)){var f=new FilenameDialog(b,G.title||"",mxResources.get("ok"),function(b){null!=b&&(G.title=b,K())},mxResources.get("enterValue"));b.showDialog(f.container,300,80,!0,!0);f.init();mxEvent.consume(c)}else if("true"!=D.getAttribute("contentEditable")){null!=B&&(B(),B=null);if(null==G.title||0==G.title.length)D.innerHTML="";D.style.textOverflow="";D.style.whiteSpace="";D.style.cursor="text";D.style.color="";D.setAttribute("contentEditable","true");mxUtils.setPrefixedStyle(D.style,
+"user-select","text");D.focus();document.execCommand("selectAll",!1,null);B=function(){D.removeAttribute("contentEditable");D.style.cursor="pointer";G.title=D.innerHTML;K()};mxEvent.consume(c)}};mxEvent.addListener(D,"click",M);mxEvent.addListener(E,"dblclick",M);u.appendChild(E);mxEvent.addListener(E,"dragstart",function(b){null==c&&null!=k&&(I.style.visibility="hidden",D.style.visibility="hidden");mxClient.IS_FF&&null!=k.xml&&b.dataTransfer.setData("Text",k.xml);A=n(b);mxClient.IS_GC&&(E.style.opacity=
+"0.9");window.setTimeout(function(){mxUtils.setPrefixedStyle(E.style,"transform","scale(0.5,0.5)");mxUtils.setOpacity(E,30);I.style.visibility="";D.style.visibility=""},0)});mxEvent.addListener(E,"dragend",function(b){"hidden"==I.style.visibility&&(I.style.visibility="",D.style.visibility="");A=null;mxUtils.setOpacity(E,100);mxUtils.setPrefixedStyle(E.style,"transform",null)})}else C||(C=!0,b.handleError({message:mxResources.get("fileExists")}));else{m=!1;try{if(J=mxUtils.parseXml(c),"mxlibrary"==
+J.documentElement.nodeName){F=JSON.parse(mxUtils.getTextContent(J.documentElement));if(null!=F&&0<F.length)for(var N=0;N<F.length;N++)null!=F[N].xml?f(null,null,0,0,0,0,F[N]):f(F[N].data,null,0,0,F[N].w,F[N].h,null,"fixed",F[N].title);m=!0}else if("mxfile"==J.documentElement.nodeName){for(var H=J.documentElement.getElementsByTagName("diagram"),N=0;N<H.length;N++){var F=mxUtils.getTextContent(H[N]),M=b.stringToCells(Graph.decompress(F)),L=b.editor.graph.getBoundingBoxFromGeometry(M);f(null,null,0,
+0,0,0,{xml:F,w:L.width,h:L.height})}m=!0}}catch(Q){}m||(b.spinner.stop(),b.handleError({message:mxResources.get("errorLoadingFile")}))}}catch(Q){}return null}function l(b){b.dataTransfer.dropEffect=null!=A?"move":"copy";b.stopPropagation();b.preventDefault()}function m(c){c.stopPropagation();c.preventDefault();C=!1;z=n(c);if(null!=A)null!=z&&z<u.children.length?(p.splice(z>A?z-1:z,0,p.splice(A,1)[0]),u.insertBefore(u.children[A],u.children[z])):(p.push(p.splice(A,1)[0]),u.appendChild(u.children[A]));
+else if(0<c.dataTransfer.files.length)b.importFiles(c.dataTransfer.files,0,0,b.maxImageSize,D(c));else if(0<=mxUtils.indexOf(c.dataTransfer.types,"text/uri-list")){var d=decodeURIComponent(c.dataTransfer.getData("text/uri-list"));(/(\.jpg)($|\?)/i.test(d)||/(\.png)($|\?)/i.test(d)||/(\.gif)($|\?)/i.test(d)||/(\.svg)($|\?)/i.test(d))&&b.loadImage(d,function(b){f(d,null,0,0,b.width,b.height);u.scrollTop=u.scrollHeight})}c.stopPropagation();c.preventDefault()}var p=[];d=document.createElement("div");
d.style.height="100%";var q=document.createElement("div");q.style.whiteSpace="nowrap";q.style.height="40px";d.appendChild(q);mxUtils.write(q,mxResources.get("filename")+":");null==e&&(e=b.defaultLibraryName+".xml");var t=document.createElement("input");t.setAttribute("value",e);t.style.marginRight="20px";t.style.marginLeft="10px";t.style.width="500px";null==g||g.isRenamable()||t.setAttribute("disabled","true");this.init=function(){if(null==g||g.isRenamable())t.focus(),mxClient.IS_GC||mxClient.IS_FF||
5<=document.documentMode?t.select():document.execCommand("selectAll",!1,null)};q.appendChild(t);var u=document.createElement("div");u.style.borderWidth="1px 0px 1px 0px";u.style.borderColor="#d3d3d3";u.style.borderStyle="solid";u.style.marginTop="6px";u.style.overflow="auto";u.style.height="340px";u.style.backgroundPosition="center center";u.style.backgroundRepeat="no-repeat";0==p.length&&Graph.fileSupport&&(u.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')");var v=document.createElement("div");
v.style.position="absolute";v.style.width="640px";v.style.top="260px";v.style.textAlign="center";v.style.fontSize="22px";v.style.color="#a0c3ff";mxUtils.write(v,mxResources.get("dragImagesHere"));d.appendChild(v);var x={},A=null,z=null,B=null;e=function(b){"true"!=mxEvent.getSource(b).getAttribute("contentEditable")&&null!=B&&(B(),B=null,mxEvent.consume(b))};mxEvent.addListener(u,"mousedown",e);mxEvent.addListener(u,"pointerdown",e);mxEvent.addListener(u,"touchstart",e);var y=new mxUrlConverter,C=
-!1;if(null!=c)for(e=0;e<c.length;e++)q=c[e],f(q.data,null,0,0,q.w,q.h,q,q.aspect,q.title);mxEvent.addListener(u,"dragleave",function(b){v.style.cursor="";for(var c=mxEvent.getSource(b);null!=c;){if(c==u||c==v){b.stopPropagation();b.preventDefault();break}c=c.parentNode}});var G=function(c){return function(d,e,l,m,g,k,p,q,t){null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t.name)||/(\.vs(x|sx?))($|\?)/i.test(t.name))?b.importVisio(t,mxUtils.bind(this,function(b){f(b,e,l,m,g,k,p,"fixed",mxEvent.isAltDown(c)?
+!1;if(null!=c)for(e=0;e<c.length;e++)q=c[e],f(q.data,null,0,0,q.w,q.h,q,q.aspect,q.title);mxEvent.addListener(u,"dragleave",function(b){v.style.cursor="";for(var c=mxEvent.getSource(b);null!=c;){if(c==u||c==v){b.stopPropagation();b.preventDefault();break}c=c.parentNode}});var D=function(c){return function(d,e,l,m,g,k,p,q,t){null!=t&&(/(\.v(dx|sdx?))($|\?)/i.test(t.name)||/(\.vs(x|sx?))($|\?)/i.test(t.name))?b.importVisio(t,mxUtils.bind(this,function(b){f(b,e,l,m,g,k,p,"fixed",mxEvent.isAltDown(c)?
null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," "))})):null!=t&&!b.isOffline()&&(new XMLHttpRequest).upload&&b.isRemoteFileFormat(d,t.name)?b.parseFile(t,mxUtils.bind(this,function(d){4==d.readyState&&(b.spinner.stop(),200<=d.status&&299>=d.status&&(f(d.responseText,e,l,m,g,k,p,"fixed",mxEvent.isAltDown(c)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," ")),u.scrollTop=u.scrollHeight))})):(f(d,e,l,m,g,k,p,"fixed",mxEvent.isAltDown(c)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g,
" ")),u.scrollTop=u.scrollHeight)}};mxEvent.addListener(u,"dragover",l);mxEvent.addListener(u,"drop",m);mxEvent.addListener(v,"dragover",l);mxEvent.addListener(v,"drop",m);d.appendChild(u);c=document.createElement("div");c.style.textAlign="right";c.style.marginTop="20px";e=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});e.setAttribute("id","btnCancel");e.className="geBtn";b.editor.cancelFirst&&c.appendChild(e);"draw.io"!=b.getServiceName()||null==g||g.constructor!=DriveLibrary&&
g.constructor!=GitHubLibrary||(q=mxUtils.button(mxResources.get("link"),function(){b.spinner.spin(document.body,mxResources.get("loading"))&&g.getPublicUrl(function(c){b.spinner.stop();if(null!=c){var f=b.getSearch("create title mode url drive splash state clibs ui".split(" ")),f=f+((0==f.length?"?":"&")+"splash=0&clibs=U"+encodeURIComponent(c));c=new EmbedDialog(b,window.location.protocol+"//"+window.location.host+"/"+f,null,null,null,null,"Check out the library I made using @drawio");b.showDialog(c.container,
450,240,!0);c.init()}else g.constructor==DriveLibrary?b.showError(mxResources.get("error"),mxResources.get("diagramIsNotPublic"),mxResources.get("share"),mxUtils.bind(this,function(){b.drive.showPermissions(g.getId())}),null,mxResources.get("ok"),mxUtils.bind(this,function(){})):b.handleError({message:mxResources.get("diagramIsNotPublic")})})}),q.className="geBtn",c.appendChild(q));q=mxUtils.button(mxResources.get("export"),function(){var c=b.createLibraryDataFromImages(p),f=t.value;/(\.xml)$/i.test(f)||
-(f+=".xml");b.isLocalFileSave()?b.saveLocalFile(c,f,"text/xml",null,null,!0,null,"xml"):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(f)+"&format=xml&xml="+encodeURIComponent(c))).simulate(document,"_blank")});q.setAttribute("id","btnDownload");q.className="geBtn";c.appendChild(q);if(Graph.fileSupport){if(null==b.libDlgFileInputElt){var F=document.createElement("input");F.setAttribute("multiple","multiple");F.setAttribute("type","file");mxEvent.addListener(F,"change",function(c){C=!1;
-b.importFiles(F.files,0,0,b.maxImageSize,function(b,f,d,e,l,m,g,k,p){null!=F.files&&(G(c)(b,f,d,e,l,m,g,k,p),F.type="",F.type="file",F.value="")});u.scrollTop=u.scrollHeight});F.style.display="none";document.body.appendChild(F);b.libDlgFileInputElt=F}q=mxUtils.button(mxResources.get("import"),function(){null!=B&&(B(),B=null);b.libDlgFileInputElt.click()});q.setAttribute("id","btnAddImage");q.className="geBtn";c.appendChild(q)}q=mxUtils.button(mxResources.get("addImages"),function(){null!=B&&(B(),
+(f+=".xml");b.isLocalFileSave()?b.saveLocalFile(c,f,"text/xml",null,null,!0,null,"xml"):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(f)+"&format=xml&xml="+encodeURIComponent(c))).simulate(document,"_blank")});q.setAttribute("id","btnDownload");q.className="geBtn";c.appendChild(q);if(Graph.fileSupport){if(null==b.libDlgFileInputElt){var G=document.createElement("input");G.setAttribute("multiple","multiple");G.setAttribute("type","file");mxEvent.addListener(G,"change",function(c){C=!1;
+b.importFiles(G.files,0,0,b.maxImageSize,function(b,f,d,e,l,m,g,k,p){null!=G.files&&(D(c)(b,f,d,e,l,m,g,k,p),G.type="",G.type="file",G.value="")});u.scrollTop=u.scrollHeight});G.style.display="none";document.body.appendChild(G);b.libDlgFileInputElt=G}q=mxUtils.button(mxResources.get("import"),function(){null!=B&&(B(),B=null);b.libDlgFileInputElt.click()});q.setAttribute("id","btnAddImage");q.className="geBtn";c.appendChild(q)}q=mxUtils.button(mxResources.get("addImages"),function(){null!=B&&(B(),
B=null);b.showImageDialog(mxResources.get("addImageUrl"),"",function(b,c,d){C=!1;if(null!=b){if("data:image/"==b.substring(0,11)){var e=b.indexOf(",");0<e&&(b=b.substring(0,e)+";base64,"+b.substring(e+1))}f(b,null,0,0,c,d);u.scrollTop=u.scrollHeight}})});q.setAttribute("id","btnAddImageUrl");q.className="geBtn";c.appendChild(q);this.saveBtnClickHandler=function(c,f,d,e){b.saveLibrary(c,f,d,e)};q=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(){null!=B&&(B(),B=null);this.saveBtnClickHandler(t.value,
p,g,k)}));q.setAttribute("id","btnSave");q.className="geBtn gePrimaryBtn";c.appendChild(q);b.editor.cancelFirst||c.appendChild(e);d.appendChild(c);this.container=d},EditShapeDialog=function(b,e,d,c,g){c=null!=c?c:300;g=null!=g?g:120;var k,n,f=document.createElement("table"),l=document.createElement("tbody");f.style.cellPadding="4px";k=document.createElement("tr");n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";mxUtils.write(n,d);k.appendChild(n);l.appendChild(k);
k=document.createElement("tr");n=document.createElement("td");var m=document.createElement("textarea");m.style.outline="none";m.style.resize="none";m.style.width=c-200+"px";m.style.height=g+"px";this.textarea=m;this.init=function(){m.focus();m.scrollTop=0};n.appendChild(m);k.appendChild(n);n=document.createElement("td");d=document.createElement("div");d.style.position="relative";d.style.border="1px solid gray";d.style.top="6px";d.style.width="200px";d.style.height=g+4+"px";d.style.overflow="hidden";
@@ -10407,44 +10409,44 @@ l=l.documentElement.getElementsByTagName("parsererror");if(null!=l&&0<l.length)b
(c.setSelectionCell(f),c.scrollCellToVisible(f))}};d=mxUtils.button(mxResources.get("preview"),function(){u(p,q,!1)});d.className="geBtn";n.appendChild(d);d=mxUtils.button(mxResources.get("apply"),function(){u(b.editor.graph,e,!0)});d.className="geBtn gePrimaryBtn";n.appendChild(d);b.editor.cancelFirst||n.appendChild(g);k.appendChild(n);l.appendChild(k);f.appendChild(l);this.container=f},CustomDialog=function(b,e,d,c,g,k,n,f,l,m,p){var q=document.createElement("div");q.appendChild(e);var t=document.createElement("div");
t.style.marginTop="30px";t.style.textAlign="center";null!=n&&t.appendChild(n);b.isOffline()||null==k||(e=mxUtils.button(mxResources.get("help"),function(){b.openLink(k)}),e.className="geBtn",t.appendChild(e));l=mxUtils.button(l||mxResources.get("cancel"),function(){b.hideDialog();null!=c&&c()});l.className="geBtn";f&&(l.style.display="none");b.editor.cancelFirst&&t.appendChild(l);g=mxUtils.button(g||mxResources.get("ok"),mxUtils.bind(this,function(){m||b.hideDialog(null,null,this.container);if(null!=
d){var c=d();if("string"===typeof c){b.showError(mxResources.get("error"),c);return}}m&&b.hideDialog(null,null,this.container)}));t.appendChild(g);g.className="geBtn gePrimaryBtn";b.editor.cancelFirst||t.appendChild(l);if(null!=p)for(f=0;f<p.length;f++)(function(b,c,f){b=mxUtils.button(b,function(b){c(b)});null!=f&&b.setAttribute("title",f);b.className="geBtn";t.appendChild(b)})(p[f][0],p[f][1],p[f][2]);q.appendChild(t);this.cancelBtn=l;this.okButton=g;this.container=q},TemplatesDialog=function(b,
-e,d,c,g,k,n,f,l,m,p,q,t,u,v){function x(b){ua.innerHTML=mxUtils.htmlEntities(b);ua.style.display="block";setTimeout(function(){ua.style.display="none"},4E3)}function A(){null!=U&&(U.style.fontWeight="normal",U.style.textDecoration="none",P=U,U=null)}function z(b,c,f,d,e,l,m){if(-1<b.className.indexOf("geTempDlgRadioBtnActive"))return!1;b.className+=" geTempDlgRadioBtnActive";J.querySelector(".geTempDlgRadioBtn[data-id="+d+"]").className="geTempDlgRadioBtn "+(m?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");
-J.querySelector("."+c).src="/images/"+f+"-sel.svg";J.querySelector("."+e).src="/images/"+l+".svg";return!0}function B(c,f,d,e){function m(c,f){if(null==k){var d=c,d=/^https?:\/\//.test(d)&&!b.editor.isCorsEnabledForUrl(d)?PROXY_URL+"?url="+encodeURIComponent(d):TEMPLATE_PATH+"/"+d;mxUtils.get(d,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&(k=b.getText());f(k)}))}else f(k)}function g(d,e,l){if(null!=d&&mxUtils.isAncestorNode(document.body,f)&&(d=mxUtils.parseXml(d),d=Editor.extractGraphModel(d.documentElement,
+e,d,c,g,k,n,f,l,m,p,q,t,u,v){function x(b){ua.innerHTML=mxUtils.htmlEntities(b);ua.style.display="block";setTimeout(function(){ua.style.display="none"},4E3)}function A(){null!=U&&(U.style.fontWeight="normal",U.style.textDecoration="none",O=U,U=null)}function z(b,c,f,d,e,l,m){if(-1<b.className.indexOf("geTempDlgRadioBtnActive"))return!1;b.className+=" geTempDlgRadioBtnActive";K.querySelector(".geTempDlgRadioBtn[data-id="+d+"]").className="geTempDlgRadioBtn "+(m?"geTempDlgRadioBtnLarge":"geTempDlgRadioBtnSmall");
+K.querySelector("."+c).src="/images/"+f+"-sel.svg";K.querySelector("."+e).src="/images/"+l+".svg";return!0}function B(c,f,d,e){function m(c,f){if(null==k){var d=c,d=/^https?:\/\//.test(d)&&!b.editor.isCorsEnabledForUrl(d)?PROXY_URL+"?url="+encodeURIComponent(d):TEMPLATE_PATH+"/"+d;mxUtils.get(d,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&(k=b.getText());f(k)}))}else f(k)}function g(d,e,l){if(null!=d&&mxUtils.isAncestorNode(document.body,f)&&(d=mxUtils.parseXml(d),d=Editor.extractGraphModel(d.documentElement,
!0),null!=d)){"mxfile"==d.nodeName&&(d=Editor.parseDiagramNode(d.getElementsByTagName("diagram")[0]));var m=new mxCodec(d.ownerDocument),g=new mxGraphModel;m.decode(d,g);d=g.root.getChildAt(0).children||[];b.sidebar.createTooltip(f,d,Math.min((window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-80,1E3),Math.min((window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)-80,800),null!=c.title?mxResources.get(c.title,null,c.title):null,!0,
-new mxPoint(e,l),!0,null,!0);var k=document.createElement("div");k.className="geTempDlgDialogMask";J.appendChild(k);var p=b.sidebar.hideTooltip;b.sidebar.hideTooltip=function(){k&&(J.removeChild(k),k=null,p.apply(this,arguments),b.sidebar.hideTooltip=p)};mxEvent.addListener(k,"click",function(){b.sidebar.hideTooltip()})}}var k=null;if(da||b.sidebar.currentElt==f)b.sidebar.hideTooltip();else{var p=function(c){da&&b.sidebar.currentElt==f&&g(c,mxEvent.getClientX(e),mxEvent.getClientY(e));da=!1;d.src=
+new mxPoint(e,l),!0,null,!0);var k=document.createElement("div");k.className="geTempDlgDialogMask";K.appendChild(k);var p=b.sidebar.hideTooltip;b.sidebar.hideTooltip=function(){k&&(K.removeChild(k),k=null,p.apply(this,arguments),b.sidebar.hideTooltip=p)};mxEvent.addListener(k,"click",function(){b.sidebar.hideTooltip()})}}var k=null;if(da||b.sidebar.currentElt==f)b.sidebar.hideTooltip();else{var p=function(c){da&&b.sidebar.currentElt==f&&g(c,mxEvent.getClientX(e),mxEvent.getClientY(e));da=!1;d.src=
"/images/icon-search.svg"};b.sidebar.hideTooltip();b.sidebar.currentElt=f;da=!0;d.src="/images/aui-wait.gif";c.isExt?l(c,p,function(){x(mxResources.get("cantLoadPrev"));da=!1;d.src="/images/icon-search.svg"}):m(c.url,p)}}function y(b,c,f){if(null!=S){for(var d=S.className.split(" "),e=0;e<d.length;e++)if(-1<d[e].indexOf("Active")){d.splice(e,1);break}S.className=d.join(" ")}null!=b?(S=b,S.className+=" "+c,Y=f,ga.className="geTempDlgCreateBtn"):(Y=S=null,ga.className="geTempDlgCreateBtn geTempDlgBtnDisabled")}
function C(c,f){if(null!=Y){var d=function(c){t.isExternal?l(t,function(b){g(b,c)},k):t.url?mxUtils.get(TEMPLATE_PATH+"/"+t.url,mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?g(b.getText(),c):k()})):g(b.emptyDiagramXml,c)},g=function(c,d){v||b.hideDialog(!0);e(c,d,t,f)},k=function(){x(mxResources.get("cannotLoad"));p()},p=function(){Y=t;ga.className="geTempDlgCreateBtn";f&&(ja.className="geTempDlgOpenBtn")},t=Y;Y=null;"boolean"!==typeof f&&(f=t.isExternal&&q);if(1==c)m(t.url,
t);else if(f)ja.className="geTempDlgOpenBtn geTempDlgBtnDisabled geTempDlgBtnBusy",d();else{ga.className="geTempDlgCreateBtn geTempDlgBtnDisabled geTempDlgBtnBusy";var n=null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"),n=new FilenameDialog(b,b.defaultFilename+".drawio",mxResources.get("ok"),d,n,function(b){var c=null!=b&&0<b.length;return c&&v?(d(b),!1):c},null,null,null,p,u?null:[]);b.showDialog(n.container,350,80,!0,!0);n.init()}}}
-function G(b){ga.innerHTML=mxUtils.htmlEntities(mxResources.get(Q||b?"create":"copy"));b=b?"none":"";q&&(ja.style.display=b);for(var c=J.querySelectorAll(".geTempDlgLinkToDiagram"),f=0;f<c.length;f++)c[f].style.display=b}function F(c,f,d,e,l){l||(ia.innerHTML="",y(),na=c,pa=e);var m=null;if(d){m=document.createElement("table");m.className="geTempDlgDiagramsListGrid";var g=document.createElement("tr"),k=document.createElement("th");k.style.width="50%";k.innerHTML=mxUtils.htmlEntities(mxResources.get("diagram"));
+function D(b){ga.innerHTML=mxUtils.htmlEntities(mxResources.get(Q||b?"create":"copy"));b=b?"none":"";q&&(ja.style.display=b);for(var c=K.querySelectorAll(".geTempDlgLinkToDiagram"),f=0;f<c.length;f++)c[f].style.display=b}function G(c,f,d,e,l){l||(ia.innerHTML="",y(),na=c,pa=e);var m=null;if(d){m=document.createElement("table");m.className="geTempDlgDiagramsListGrid";var g=document.createElement("tr"),k=document.createElement("th");k.style.width="50%";k.innerHTML=mxUtils.htmlEntities(mxResources.get("diagram"));
g.appendChild(k);k=document.createElement("th");k.style.width="25%";k.innerHTML=mxUtils.htmlEntities(mxResources.get("changedBy"));g.appendChild(k);k=document.createElement("th");k.style.width="25%";k.innerHTML=mxUtils.htmlEntities(mxResources.get("lastModifiedOn"));g.appendChild(k);m.appendChild(g);ia.appendChild(m)}for(g=0;g<c.length;g++){c[g].isExternal=!f;var p=c[g].url,q=(k=mxUtils.htmlEntities(f?mxResources.get(c[g].title,null,c[g].title):c[g].title))||c[g].url,t=c[g].imgUrl,n=mxUtils.htmlEntities(c[g].changedBy||
-""),J="";c[g].lastModifiedOn&&(J=b.timeSince(new Date(c[g].lastModifiedOn)),null==J&&(J=mxResources.get("lessThanAMinute")),J=mxUtils.htmlEntities(mxResources.get("timeAgo",[J],"{1} ago")));t||(t=TEMPLATE_PATH+"/"+p.substring(0,p.length-4)+".png");p=d?50:15;null!=k&&k.length>p&&(k=k.substring(0,p)+"&hellip;");if(d){var u=document.createElement("tr"),t=document.createElement("td"),v=document.createElement("img");v.src="/images/icon-search.svg";v.className="geTempDlgDiagramListPreviewBtn";v.setAttribute("title",
-mxResources.get("preview"));l||t.appendChild(v);q=document.createElement("span");q.className="geTempDlgDiagramTitle";q.innerHTML=k;t.appendChild(q);u.appendChild(t);t=document.createElement("td");t.innerHTML=n;u.appendChild(t);t=document.createElement("td");t.innerHTML=J;u.appendChild(t);m.appendChild(u);null==S&&(G(f),y(u,"geTempDlgDiagramsListGridActive",c[g]));(function(b,c,d){mxEvent.addListener(u,"click",function(){S!=c&&(G(f),y(c,"geTempDlgDiagramsListGridActive",b))});mxEvent.addListener(u,
-"dblclick",C);mxEvent.addListener(v,"click",function(f){B(b,c,d,f)})})(c[g],u,v)}else{var A=document.createElement("div");A.className="geTempDlgDiagramTile";A.setAttribute("title",q);null==S&&(G(f),y(A,"geTempDlgDiagramTileActive",c[g]));n=document.createElement("div");n.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";var x=document.createElement("img");x.style.display="none";(function(b,c,f){x.onload=function(){c.className="geTempDlgDiagramTileImg";b.style.display=""};x.onerror=
+""),K="";c[g].lastModifiedOn&&(K=b.timeSince(new Date(c[g].lastModifiedOn)),null==K&&(K=mxResources.get("lessThanAMinute")),K=mxUtils.htmlEntities(mxResources.get("timeAgo",[K],"{1} ago")));t||(t=TEMPLATE_PATH+"/"+p.substring(0,p.length-4)+".png");p=d?50:15;null!=k&&k.length>p&&(k=k.substring(0,p)+"&hellip;");if(d){var u=document.createElement("tr"),t=document.createElement("td"),v=document.createElement("img");v.src="/images/icon-search.svg";v.className="geTempDlgDiagramListPreviewBtn";v.setAttribute("title",
+mxResources.get("preview"));l||t.appendChild(v);q=document.createElement("span");q.className="geTempDlgDiagramTitle";q.innerHTML=k;t.appendChild(q);u.appendChild(t);t=document.createElement("td");t.innerHTML=n;u.appendChild(t);t=document.createElement("td");t.innerHTML=K;u.appendChild(t);m.appendChild(u);null==S&&(D(f),y(u,"geTempDlgDiagramsListGridActive",c[g]));(function(b,c,d){mxEvent.addListener(u,"click",function(){S!=c&&(D(f),y(c,"geTempDlgDiagramsListGridActive",b))});mxEvent.addListener(u,
+"dblclick",C);mxEvent.addListener(v,"click",function(f){B(b,c,d,f)})})(c[g],u,v)}else{var A=document.createElement("div");A.className="geTempDlgDiagramTile";A.setAttribute("title",q);null==S&&(D(f),y(A,"geTempDlgDiagramTileActive",c[g]));n=document.createElement("div");n.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgLoading";var x=document.createElement("img");x.style.display="none";(function(b,c,f){x.onload=function(){c.className="geTempDlgDiagramTileImg";b.style.display=""};x.onerror=
function(){this.src!=f?this.src=f:c.className="geTempDlgDiagramTileImg geTempDlgDiagramTileImgError"}})(x,n,t?t.replace(".drawio.xml","").replace(".drawio","").replace(".xml",""):"");x.src=t;n.appendChild(x);A.appendChild(n);n=document.createElement("div");n.className="geTempDlgDiagramTileLbl";n.innerHTML=null!=k?k:"";A.appendChild(n);v=document.createElement("img");v.src="/images/icon-search.svg";v.className="geTempDlgDiagramPreviewBtn";v.setAttribute("title",mxResources.get("preview"));l||A.appendChild(v);
-(function(b,c,d){mxEvent.addListener(A,"click",function(){S!=c&&(G(f),y(c,"geTempDlgDiagramTileActive",b))});mxEvent.addListener(A,"dblclick",C);mxEvent.addListener(v,"click",function(f){B(b,c,d,f)})})(c[g],A,v);ia.appendChild(A)}}for(var K in e)c=e[K],0<c.length&&(l=document.createElement("div"),l.className="geTempDlgImportCat",l.innerHTML=mxResources.get(K,null,K),ia.appendChild(l),F(c,f,d,null,!0))}function D(b,c){ea.innerHTML="";y();for(var f=Math.floor(ea.offsetWidth/150)-1,d=!c&&b.length>f?
-f:b.length,e=0;e<d;e++){var l=b[e];l.isCategory=!0;var m=document.createElement("div"),g=mxResources.get(l.title);null==g&&(g=l.title.substring(0,1).toUpperCase()+l.title.substring(1));m.className="geTempDlgNewDiagramCatItem";m.setAttribute("title",g);g=mxUtils.htmlEntities(g);15<g.length&&(g=g.substring(0,15)+"&hellip;");null==S&&(G(!0),y(m,"geTempDlgNewDiagramCatItemActive",l));var k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemImg";var p=document.createElement("img");p.src=
-NEW_DIAGRAM_CATS_PATH+"/"+l.img;k.appendChild(p);m.appendChild(k);k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemLbl";k.innerHTML=g;m.appendChild(k);ea.appendChild(m);(function(b,c){mxEvent.addListener(m,"click",function(){S!=c&&(G(!0),y(c,"geTempDlgNewDiagramCatItemActive",b))});mxEvent.addListener(m,"dblclick",C)})(l,m)}m=document.createElement("div");m.className="geTempDlgNewDiagramCatItem";g=mxResources.get("showAllTemps");m.setAttribute("title",g);k=document.createElement("div");
-k.className="geTempDlgNewDiagramCatItemImg";k.innerHTML="...";k.style.fontSize="32px";m.appendChild(k);k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemLbl";k.innerHTML=g;m.appendChild(k);ea.appendChild(m);mxEvent.addListener(m,"click",function(){function b(){var f=c.querySelector(".geTemplateDrawioCatLink");null!=f?f.click():setTimeout(b,200)}Q=!0;var c=J.querySelector(".geTemplatesList");c.style.display="block";ha.style.width="";oa.style.display="";oa.value="";fa=null;b()});
-V.style.display=b.length<=f?"none":""}function E(b,c,f){function d(b,c){var f=mxResources.get(b);null==f&&(f=b.substring(0,1).toUpperCase()+b.substring(1));var d=f+" ("+c.length+")",e=f=mxUtils.htmlEntities(f);15<f.length&&(f=f.substring(0,15)+"&hellip;");return{lbl:f+" ("+c.length+")",fullLbl:d,lblOnly:e}}function e(f,d,e,l,m){mxEvent.addListener(e,"click",function(){U!=e&&(null!=U?(U.style.fontWeight="normal",U.style.textDecoration="none"):(X.style.display="none",ra.style.minHeight="100%"),U=e,
-U.style.fontWeight="bold",U.style.textDecoration="underline",ha.scrollTop=0,T&&(K=!0),W.innerHTML=d,Z.style.display="none",F(m?c[f]:l?qa[f][l]:b[f],m?!1:!0))})}var l=J.querySelector(".geTemplatesList");if(0<f){f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;margin-top: 10px;";mxUtils.write(f,mxResources.get("custom"));l.appendChild(f);for(var m in c){f=document.createElement("div");var g=c[m],g=d(m,g);f.className="geTemplateCatLink";
+(function(b,c,d){mxEvent.addListener(A,"click",function(){S!=c&&(D(f),y(c,"geTempDlgDiagramTileActive",b))});mxEvent.addListener(A,"dblclick",C);mxEvent.addListener(v,"click",function(f){B(b,c,d,f)})})(c[g],A,v);ia.appendChild(A)}}for(var J in e)c=e[J],0<c.length&&(l=document.createElement("div"),l.className="geTempDlgImportCat",l.innerHTML=mxResources.get(J,null,J),ia.appendChild(l),G(c,f,d,null,!0))}function E(b,c){ea.innerHTML="";y();for(var f=Math.floor(ea.offsetWidth/150)-1,d=!c&&b.length>f?
+f:b.length,e=0;e<d;e++){var l=b[e];l.isCategory=!0;var m=document.createElement("div"),g=mxResources.get(l.title);null==g&&(g=l.title.substring(0,1).toUpperCase()+l.title.substring(1));m.className="geTempDlgNewDiagramCatItem";m.setAttribute("title",g);g=mxUtils.htmlEntities(g);15<g.length&&(g=g.substring(0,15)+"&hellip;");null==S&&(D(!0),y(m,"geTempDlgNewDiagramCatItemActive",l));var k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemImg";var p=document.createElement("img");p.src=
+NEW_DIAGRAM_CATS_PATH+"/"+l.img;k.appendChild(p);m.appendChild(k);k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemLbl";k.innerHTML=g;m.appendChild(k);ea.appendChild(m);(function(b,c){mxEvent.addListener(m,"click",function(){S!=c&&(D(!0),y(c,"geTempDlgNewDiagramCatItemActive",b))});mxEvent.addListener(m,"dblclick",C)})(l,m)}m=document.createElement("div");m.className="geTempDlgNewDiagramCatItem";g=mxResources.get("showAllTemps");m.setAttribute("title",g);k=document.createElement("div");
+k.className="geTempDlgNewDiagramCatItemImg";k.innerHTML="...";k.style.fontSize="32px";m.appendChild(k);k=document.createElement("div");k.className="geTempDlgNewDiagramCatItemLbl";k.innerHTML=g;m.appendChild(k);ea.appendChild(m);mxEvent.addListener(m,"click",function(){function b(){var f=c.querySelector(".geTemplateDrawioCatLink");null!=f?f.click():setTimeout(b,200)}Q=!0;var c=K.querySelector(".geTemplatesList");c.style.display="block";ha.style.width="";oa.style.display="";oa.value="";fa=null;b()});
+V.style.display=b.length<=f?"none":""}function F(b,c,f){function d(b,c){var f=mxResources.get(b);null==f&&(f=b.substring(0,1).toUpperCase()+b.substring(1));var d=f+" ("+c.length+")",e=f=mxUtils.htmlEntities(f);15<f.length&&(f=f.substring(0,15)+"&hellip;");return{lbl:f+" ("+c.length+")",fullLbl:d,lblOnly:e}}function e(f,d,e,l,m){mxEvent.addListener(e,"click",function(){U!=e&&(null!=U?(U.style.fontWeight="normal",U.style.textDecoration="none"):(X.style.display="none",ra.style.minHeight="100%"),U=e,
+U.style.fontWeight="bold",U.style.textDecoration="underline",ha.scrollTop=0,T&&(J=!0),W.innerHTML=d,Z.style.display="none",G(m?c[f]:l?qa[f][l]:b[f],m?!1:!0))})}var l=K.querySelector(".geTemplatesList");if(0<f){f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;margin-top: 10px;";mxUtils.write(f,mxResources.get("custom"));l.appendChild(f);for(var m in c){f=document.createElement("div");var g=c[m],g=d(m,g);f.className="geTemplateCatLink";
f.setAttribute("title",g.fullLbl);f.innerHTML=g.lbl;l.appendChild(f);e(m,g.lblOnly,f,null,!0)}f=document.createElement("div");f.style.cssText="font-weight: bold;background: #f9f9f9;padding: 5px 0 5px 0;text-align: center;margin-top: 10px;";mxUtils.write(f,"draw.io");l.appendChild(f)}for(m in b){var k=qa[m],p=f=document.createElement(k?"ul":"div"),g=b[m],g=d(m,g);if(null!=k){var q=document.createElement("li"),t=document.createElement("div");t.className="geTempTreeCaret geTemplateCatLink geTemplateDrawioCatLink";
t.style.padding="0";t.setAttribute("title",g.fullLbl);t.innerHTML=g.lbl;p=t;q.appendChild(t);var n=document.createElement("ul");n.className="geTempTreeNested";n.style.visibility="hidden";for(var y in k){var u=document.createElement("li"),v=d(y,k[y]);u.setAttribute("title",v.fullLbl);u.innerHTML=v.lbl;u.className="geTemplateCatLink";u.style.padding="0";u.style.margin="0";e(m,v.lblOnly,u,y);n.appendChild(u)}q.appendChild(n);f.className="geTempTree";f.appendChild(q);(function(b,c){mxEvent.addListener(c,
"click",function(){for(var f=b.querySelectorAll("li"),d=0;d<f.length;d++)f[d].style.margin="";b.style.visibility="visible";b.classList.toggle("geTempTreeActive");b.classList.toggle("geTempTreeNested")&&setTimeout(function(){for(var c=0;c<f.length;c++)f[c].style.margin="0";b.style.visibility="hidden"},250);c.classList.toggle("geTempTreeCaret-down")})})(n,t)}else f.className="geTemplateCatLink geTemplateDrawioCatLink",f.setAttribute("title",g.fullLbl),f.innerHTML=g.lbl;l.appendChild(f);e(m,g.lblOnly,
p)}}function H(){mxUtils.get(c,function(b){if(!ma){ma=!0;b=b.getXml().documentElement.firstChild;for(var c={};null!=b;){if("undefined"!==typeof b.getAttribute)if("clibs"==b.nodeName){for(var f=b.getAttribute("name"),d=b.getElementsByTagName("add"),e=[],l=0;l<d.length;l++)e.push(encodeURIComponent(mxUtils.getTextContent(d[l])));null!=f&&0<e.length&&(c[f]=e.join(";"))}else if(e=b.getAttribute("url"),null!=e){d=b.getAttribute("section");f=b.getAttribute("subsection");if(null==d&&(l=e.indexOf("/"),d=
-e.substring(0,l),null==f)){var m=e.indexOf("/",l+1);-1<m&&(f=e.substring(l+1,m))}l=la[d];null==l&&(xa++,l=[],la[d]=l);e=b.getAttribute("clibs");null!=c[e]&&(e=c[e]);e={url:b.getAttribute("url"),libs:b.getAttribute("libs"),title:b.getAttribute("title")||b.getAttribute("name"),preview:b.getAttribute("preview"),clibs:e,tags:b.getAttribute("tags")};l.push(e);null!=f&&(l=qa[d],null==l&&(l={},qa[d]=l),d=l[f],null==d&&(d=[],l[f]=d),d.push(e))}b=b.nextSibling}E(la,ta,Ba)}})}function I(b){n&&(ha.scrollTop=
-0,ia.innerHTML="",R.spin(ia),K=!1,T=!0,W.innerHTML=mxUtils.htmlEntities(mxResources.get("recentDiag")),fa=null,n(wa,function(){x(mxResources.get("cannotLoad"));wa([])},b?null:k))}function L(b){if(""==b)null!=P&&(P.click(),P=null);else{if(null==TemplatesDialog.tagsList[c]){var f={},d;for(d in la)for(var e=la[d],l=0;l<e.length;l++){var m=e[l];if(null!=m.tags)for(var g=m.tags.toLowerCase().split(";"),k=0;k<g.length;k++)null==f[g[k]]&&(f[g[k]]=[]),f[g[k]].push(m)}TemplatesDialog.tagsList[c]=f}var p=b.toLowerCase().split(" "),
-f=TemplatesDialog.tagsList[c];if(0<Ba&&null==f.__tagsList__){for(d in ta)for(e=ta[d],l=0;l<e.length;l++)for(m=e[l],g=m.title.split(" "),g.push(d),k=0;k<g.length;k++){var q=g[k].toLowerCase();null==f[q]&&(f[q]=[]);f[q].push(m)}f.__tagsList__=!0}d=[];e={};for(l=g=0;l<p.length;l++)if(0<p[l].length){var q=f[p[l]],t={};d=[];if(null!=q)for(k=0;k<q.length;k++)m=q[k],0==g==(null==e[m.url])&&(t[m.url]=!0,d.push(m));e=t;g++}0==d.length?W.innerHTML=mxResources.get("noResultsFor",[b]):F(d,!0)}}function M(b){if(fa!=
-b||aa!=ca)A(),ha.scrollTop=0,ia.innerHTML="",W.innerHTML=mxUtils.htmlEntities(mxResources.get("searchResults"))+' "'+mxUtils.htmlEntities(b)+'"',za=null,Q?L(b):f&&(b?(R.spin(ia),K=!1,T=!0,f(b,wa,function(){x(mxResources.get("searchFailed"));wa([])},aa?null:k)):I(aa)),fa=b,ca=aa}function N(b){null!=za&&clearTimeout(za);13==b.keyCode?M(oa.value):za=setTimeout(function(){M(oa.value)},1E3)}var O='<div class="geTempDlgHeader"><img src="/images/draw.io-logo.svg" class="geTempDlgHeaderLogo"><input type="search" class="geTempDlgSearchBox" '+
+e.substring(0,l),null==f)){var m=e.indexOf("/",l+1);-1<m&&(f=e.substring(l+1,m))}l=la[d];null==l&&(xa++,l=[],la[d]=l);e=b.getAttribute("clibs");null!=c[e]&&(e=c[e]);e={url:b.getAttribute("url"),libs:b.getAttribute("libs"),title:b.getAttribute("title")||b.getAttribute("name"),preview:b.getAttribute("preview"),clibs:e,tags:b.getAttribute("tags")};l.push(e);null!=f&&(l=qa[d],null==l&&(l={},qa[d]=l),d=l[f],null==d&&(d=[],l[f]=d),d.push(e))}b=b.nextSibling}F(la,ta,Ba)}})}function I(b){n&&(ha.scrollTop=
+0,ia.innerHTML="",R.spin(ia),J=!1,T=!0,W.innerHTML=mxUtils.htmlEntities(mxResources.get("recentDiag")),fa=null,n(wa,function(){x(mxResources.get("cannotLoad"));wa([])},b?null:k))}function L(b){if(""==b)null!=O&&(O.click(),O=null);else{if(null==TemplatesDialog.tagsList[c]){var f={},d;for(d in la)for(var e=la[d],l=0;l<e.length;l++){var m=e[l];if(null!=m.tags)for(var g=m.tags.toLowerCase().split(";"),k=0;k<g.length;k++)null==f[g[k]]&&(f[g[k]]=[]),f[g[k]].push(m)}TemplatesDialog.tagsList[c]=f}var p=b.toLowerCase().split(" "),
+f=TemplatesDialog.tagsList[c];if(0<Ba&&null==f.__tagsList__){for(d in ta)for(e=ta[d],l=0;l<e.length;l++)for(m=e[l],g=m.title.split(" "),g.push(d),k=0;k<g.length;k++){var q=g[k].toLowerCase();null==f[q]&&(f[q]=[]);f[q].push(m)}f.__tagsList__=!0}d=[];e={};for(l=g=0;l<p.length;l++)if(0<p[l].length){var q=f[p[l]],t={};d=[];if(null!=q)for(k=0;k<q.length;k++)m=q[k],0==g==(null==e[m.url])&&(t[m.url]=!0,d.push(m));e=t;g++}0==d.length?W.innerHTML=mxResources.get("noResultsFor",[b]):G(d,!0)}}function M(b){if(fa!=
+b||aa!=ca)A(),ha.scrollTop=0,ia.innerHTML="",W.innerHTML=mxUtils.htmlEntities(mxResources.get("searchResults"))+' "'+mxUtils.htmlEntities(b)+'"',za=null,Q?L(b):f&&(b?(R.spin(ia),J=!1,T=!0,f(b,wa,function(){x(mxResources.get("searchFailed"));wa([])},aa?null:k)):I(aa)),fa=b,ca=aa}function N(b){null!=za&&clearTimeout(za);13==b.keyCode?M(oa.value):za=setTimeout(function(){M(oa.value)},1E3)}var P='<div class="geTempDlgHeader"><img src="/images/draw.io-logo.svg" class="geTempDlgHeaderLogo"><input type="search" class="geTempDlgSearchBox" '+
(f?"":'style="display: none"')+' placeholder="'+mxResources.get("search")+'"></div><div class="geTemplatesList" style="display: none"><div class="geTempDlgBack">&lt; '+mxResources.get("back")+'</div><div class="geTempDlgHLine"></div><div class="geTemplatesLbl">'+mxResources.get("templates")+'</div></div><div class="geTempDlgContent" style="width: 100%"><div class="geTempDlgNewDiagramCat"><div class="geTempDlgNewDiagramCatLbl">'+mxResources.get("newDiagram")+'</div><div class="geTempDlgNewDiagramCatList"></div><div class="geTempDlgNewDiagramCatFooter"><div class="geTempDlgShowAllBtn">'+
mxResources.get("showMore")+'</div></div></div><div class="geTempDlgDiagramsList"><div class="geTempDlgDiagramsListHeader"><div class="geTempDlgDiagramsListTitle"></div><div class="geTempDlgDiagramsListBtns"><div class="geTempDlgRadioBtn geTempDlgRadioBtnLarge" data-id="myDiagramsBtn"><img src="/images/my-diagrams.svg" class="geTempDlgMyDiagramsBtnImg"> <span>'+mxResources.get("myDiagrams")+'</span></div><div class="geTempDlgRadioBtn geTempDlgRadioBtnLarge geTempDlgRadioBtnActive" data-id="allDiagramsBtn"><img src="/images/all-diagrams-sel.svg" class="geTempDlgAllDiagramsBtnImg"> <span>'+
mxResources.get("allDiagrams")+'</span></div><div class="geTempDlgSpacer"> </div><div class="geTempDlgRadioBtn geTempDlgRadioBtnSmall geTempDlgRadioBtnActive" data-id="tilesBtn"><img src="/images/tiles-sel.svg" class="geTempDlgTilesBtnImg"></div><div class="geTempDlgRadioBtn geTempDlgRadioBtnSmall" data-id="listBtn"><img src="/images/list.svg" class="geTempDlgListBtnImg"></div></div></div><div class="geTempDlgDiagramsTiles"></div></div></div><br style="clear:both;"/><div class="geTempDlgFooter"><div class="geTempDlgErrMsg"></div>'+
-(t?'<span class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramHint">'+mxResources.get("linkToDiagramHint")+'</span><button class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramBtn">'+mxResources.get("linkToDiagram")+"</button>":"")+(q?'<div class="geTempDlgOpenBtn">'+mxResources.get("open")+"</div>":"")+'<div class="geTempDlgCreateBtn">'+mxResources.get("create")+'</div><div class="geTempDlgCancelBtn">'+mxResources.get("cancel")+"</div></div>",J=document.createElement("div");J.innerHTML=O;J.className=
-"geTemplateDlg";this.container=J;c=null!=c?c:TEMPLATE_PATH+"/index.xml";g=null!=g?g:NEW_DIAGRAM_CATS_PATH+"/index.xml";var T=!1,K=!1,U=null,P=null,S=null,Y=null,ka=!1,aa=!0,ba=!1,na=[],pa=null,fa,ca,Q=!1,V=J.querySelector(".geTempDlgShowAllBtn"),ia=J.querySelector(".geTempDlgDiagramsTiles"),W=J.querySelector(".geTempDlgDiagramsListTitle"),Z=J.querySelector(".geTempDlgDiagramsListBtns"),ha=J.querySelector(".geTempDlgContent"),ra=J.querySelector(".geTempDlgDiagramsList"),X=J.querySelector(".geTempDlgNewDiagramCat"),
-ea=J.querySelector(".geTempDlgNewDiagramCatList"),ga=J.querySelector(".geTempDlgCreateBtn"),ja=J.querySelector(".geTempDlgOpenBtn"),oa=J.querySelector(".geTempDlgSearchBox"),ua=J.querySelector(".geTempDlgErrMsg"),R=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"50px",zIndex:2E9});mxEvent.addListener(J.querySelector(".geTempDlgBack"),"click",function(){A();Q=!1;J.querySelector(".geTemplatesList").style.display="none";ha.style.width=
-"100%";X.style.display="";ra.style.minHeight="calc(100% - 280px)";oa.style.display=f?"":"none";oa.value="";fa=null;I(aa)});mxEvent.addListener(J.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){z(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(aa=!0,null==fa?I(aa):M(fa))});mxEvent.addListener(J.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){z(this,"geTempDlgMyDiagramsBtnImg",
-"my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg","all-diagrams",!0)&&(aa=!1,null==fa?I(aa):M(fa))});mxEvent.addListener(J.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){z(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(ba=!0,F(na,!1,ba,pa))});mxEvent.addListener(J.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){z(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(ba=!1,F(na,
-!1,ba,pa))});var da=!1;mxEvent.addListener(V,"click",function(){ka?(X.style.height="280px",ea.style.height="190px",V.innerHTML=mxUtils.htmlEntities(mxResources.get("showMore")),D(va)):(X.style.height="440px",ea.style.height="355px",V.innerHTML=mxUtils.htmlEntities(mxResources.get("showLess")),D(va,!0));ka=!ka});var ma=!1,sa=!1,la={},qa={},ta={},va=[],xa=1,Ba=0;null!=p?p(function(b,c){ta=b;Ba=c;H()},H):H();mxUtils.get(g,function(b){if(!sa){sa=!0;for(b=b.getXml().documentElement.firstChild;null!=b;)"undefined"!==
-typeof b.getAttribute&&null!=b.getAttribute("title")&&va.push({img:b.getAttribute("img"),libs:b.getAttribute("libs"),clibs:b.getAttribute("clibs"),title:b.getAttribute("title")}),b=b.nextSibling;D(va)}});var wa=function(b,c,f){Z.style.display="";R.stop();T=!1;if(K)K=!1;else if(c)ia.innerHTML=c;else{f=f||{};c=0;for(var d in f)c+=f[d].length;0==b.length&&0==c?ia.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams")):F(b,!1,ba,0==c?null:f)}};I(aa);var za=null;mxEvent.addListener(oa,"keyup",N);
-mxEvent.addListener(oa,"search",N);mxEvent.addListener(oa,"input",N);mxEvent.addListener(ga,"click",function(b){C(!1,!1)});q&&mxEvent.addListener(ja,"click",function(b){C(!1,!0)});t&&mxEvent.addListener(J.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(b){C(!0)});mxEvent.addListener(J.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=d&&d();v||b.hideDialog(!0)})};TemplatesDialog.tagsList={};
+(t?'<span class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramHint">'+mxResources.get("linkToDiagramHint")+'</span><button class="geTempDlgLinkToDiagram geTempDlgLinkToDiagramBtn">'+mxResources.get("linkToDiagram")+"</button>":"")+(q?'<div class="geTempDlgOpenBtn">'+mxResources.get("open")+"</div>":"")+'<div class="geTempDlgCreateBtn">'+mxResources.get("create")+'</div><div class="geTempDlgCancelBtn">'+mxResources.get("cancel")+"</div></div>",K=document.createElement("div");K.innerHTML=P;K.className=
+"geTemplateDlg";this.container=K;c=null!=c?c:TEMPLATE_PATH+"/index.xml";g=null!=g?g:NEW_DIAGRAM_CATS_PATH+"/index.xml";var T=!1,J=!1,U=null,O=null,S=null,Y=null,ka=!1,aa=!0,ba=!1,na=[],pa=null,fa,ca,Q=!1,V=K.querySelector(".geTempDlgShowAllBtn"),ia=K.querySelector(".geTempDlgDiagramsTiles"),W=K.querySelector(".geTempDlgDiagramsListTitle"),Z=K.querySelector(".geTempDlgDiagramsListBtns"),ha=K.querySelector(".geTempDlgContent"),ra=K.querySelector(".geTempDlgDiagramsList"),X=K.querySelector(".geTempDlgNewDiagramCat"),
+ea=K.querySelector(".geTempDlgNewDiagramCatList"),ga=K.querySelector(".geTempDlgCreateBtn"),ja=K.querySelector(".geTempDlgOpenBtn"),oa=K.querySelector(".geTempDlgSearchBox"),ua=K.querySelector(".geTempDlgErrMsg"),R=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"50px",zIndex:2E9});mxEvent.addListener(K.querySelector(".geTempDlgBack"),"click",function(){A();Q=!1;K.querySelector(".geTemplatesList").style.display="none";ha.style.width=
+"100%";X.style.display="";ra.style.minHeight="calc(100% - 280px)";oa.style.display=f?"":"none";oa.value="";fa=null;I(aa)});mxEvent.addListener(K.querySelector(".geTempDlgRadioBtn[data-id=allDiagramsBtn]"),"click",function(){z(this,"geTempDlgAllDiagramsBtnImg","all-diagrams","myDiagramsBtn","geTempDlgMyDiagramsBtnImg","my-diagrams",!0)&&(aa=!0,null==fa?I(aa):M(fa))});mxEvent.addListener(K.querySelector(".geTempDlgRadioBtn[data-id=myDiagramsBtn]"),"click",function(){z(this,"geTempDlgMyDiagramsBtnImg",
+"my-diagrams","allDiagramsBtn","geTempDlgAllDiagramsBtnImg","all-diagrams",!0)&&(aa=!1,null==fa?I(aa):M(fa))});mxEvent.addListener(K.querySelector(".geTempDlgRadioBtn[data-id=listBtn]"),"click",function(){z(this,"geTempDlgListBtnImg","list","tilesBtn","geTempDlgTilesBtnImg","tiles",!1)&&(ba=!0,G(na,!1,ba,pa))});mxEvent.addListener(K.querySelector(".geTempDlgRadioBtn[data-id=tilesBtn]"),"click",function(){z(this,"geTempDlgTilesBtnImg","tiles","listBtn","geTempDlgListBtnImg","list",!1)&&(ba=!1,G(na,
+!1,ba,pa))});var da=!1;mxEvent.addListener(V,"click",function(){ka?(X.style.height="280px",ea.style.height="190px",V.innerHTML=mxUtils.htmlEntities(mxResources.get("showMore")),E(va)):(X.style.height="440px",ea.style.height="355px",V.innerHTML=mxUtils.htmlEntities(mxResources.get("showLess")),E(va,!0));ka=!ka});var ma=!1,sa=!1,la={},qa={},ta={},va=[],xa=1,Ba=0;null!=p?p(function(b,c){ta=b;Ba=c;H()},H):H();mxUtils.get(g,function(b){if(!sa){sa=!0;for(b=b.getXml().documentElement.firstChild;null!=b;)"undefined"!==
+typeof b.getAttribute&&null!=b.getAttribute("title")&&va.push({img:b.getAttribute("img"),libs:b.getAttribute("libs"),clibs:b.getAttribute("clibs"),title:b.getAttribute("title")}),b=b.nextSibling;E(va)}});var wa=function(b,c,f){Z.style.display="";R.stop();T=!1;if(J)J=!1;else if(c)ia.innerHTML=c;else{f=f||{};c=0;for(var d in f)c+=f[d].length;0==b.length&&0==c?ia.innerHTML=mxUtils.htmlEntities(mxResources.get("noDiagrams")):G(b,!1,ba,0==c?null:f)}};I(aa);var za=null;mxEvent.addListener(oa,"keyup",N);
+mxEvent.addListener(oa,"search",N);mxEvent.addListener(oa,"input",N);mxEvent.addListener(ga,"click",function(b){C(!1,!1)});q&&mxEvent.addListener(ja,"click",function(b){C(!1,!0)});t&&mxEvent.addListener(K.querySelector(".geTempDlgLinkToDiagramBtn"),"click",function(b){C(!0)});mxEvent.addListener(K.querySelector(".geTempDlgCancelBtn"),"click",function(){null!=d&&d();v||b.hideDialog(!0)})};TemplatesDialog.tagsList={};
var BtnDialog=function(b,e,d,c){var g=document.createElement("div");g.style.textAlign="center";var k=document.createElement("p");k.style.fontSize="16pt";k.style.padding="0px";k.style.margin="0px";k.style.color="gray";mxUtils.write(k,mxResources.get("done"));var n="Unknown",f=document.createElement("img");f.setAttribute("border","0");f.setAttribute("align","absmiddle");f.style.marginRight="10px";e==b.drive?(n=mxResources.get("googleDrive"),f.src=IMAGE_PATH+"/google-drive-logo-white.svg"):e==b.dropbox?
(n=mxResources.get("dropbox"),f.src=IMAGE_PATH+"/dropbox-logo-white.svg"):e==b.oneDrive?(n=mxResources.get("oneDrive"),f.src=IMAGE_PATH+"/onedrive-logo-white.svg"):e==b.gitHub?(n=mxResources.get("github"),f.src=IMAGE_PATH+"/github-logo-white.svg"):e==b.gitLab?(n=mxResources.get("gitlab"),f.src=IMAGE_PATH+"/gitlab-logo.svg"):e==b.notion?(n=mxResources.get("notion"),f.src=IMAGE_PATH+"/notion-logo.svg"):e==b.trello&&(n=mxResources.get("trello"),f.src=IMAGE_PATH+"/trello-logo-white.svg");b=document.createElement("p");
mxUtils.write(b,mxResources.get("authorizedIn",[n],"You are now authorized in {1}"));d=mxUtils.button(d,c);d.insertBefore(f,d.firstChild);d.style.marginTop="6px";d.className="geBigButton";d.style.fontSize="18px";d.style.padding="14px";g.appendChild(k);g.appendChild(b);g.appendChild(d);this.container=g},FontDialog=function(b,e,d,c,g){function k(b){this.style.border="";13==b.keyCode&&B.click()}var n,f,l,m=document.createElement("table"),p=document.createElement("tbody");m.style.marginTop="8px";n=document.createElement("tr");
@@ -10526,8 +10528,8 @@ Editor.createRoughCanvas=function(b){var c=rough.canvas({getContext:function(){r
f.filled?b.fill():b.stroke()};return c};(function(){function b(c,f,d){this.canvas=c;this.rc=f;this.shape=d;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.originalBegin=this.canvas.begin;this.canvas.begin=mxUtils.bind(this,b.prototype.begin);this.originalEnd=this.canvas.end;this.canvas.end=mxUtils.bind(this,b.prototype.end);this.originalRect=this.canvas.rect;this.canvas.rect=mxUtils.bind(this,b.prototype.rect);this.originalRoundrect=this.canvas.roundrect;this.canvas.roundrect=
mxUtils.bind(this,b.prototype.roundrect);this.originalEllipse=this.canvas.ellipse;this.canvas.ellipse=mxUtils.bind(this,b.prototype.ellipse);this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,b.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,b.prototype.moveTo);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,b.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,
b.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,b.prototype.arcTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,b.prototype.close);this.originalFill=this.canvas.fill;this.canvas.fill=mxUtils.bind(this,b.prototype.fill);this.originalStroke=this.canvas.stroke;this.canvas.stroke=mxUtils.bind(this,b.prototype.stroke);this.originalFillAndStroke=this.canvas.fillAndStroke;this.canvas.fillAndStroke=mxUtils.bind(this,b.prototype.fillAndStroke);
-this.path=[];this.passThrough=!1}b.prototype.moveOp="M";b.prototype.lineOp="L";b.prototype.quadOp="Q";b.prototype.curveOp="C";b.prototype.closeOp="Z";b.prototype.getStyle=function(b,c){var f=1;if(null!=this.shape.state){var d=this.shape.state.cell.id;if(null!=d)for(var e=0;e<d.length;e++)f=(f<<5)-f+d.charCodeAt(e)<<0}f={strokeWidth:this.canvas.state.strokeWidth,seed:f,preserveVertices:!0};d=this.rc.getDefaultOptions();b?f.stroke="none"===this.canvas.state.strokeColor?"transparent":this.canvas.state.strokeColor:
-delete f.stroke;e=null;(f.filled=c)?(f.fill="none"===this.canvas.state.fillColor?"":this.canvas.state.fillColor,e="none"===this.canvas.state.gradientColor?null:this.canvas.state.gradientColor):f.fill="";f.bowing=mxUtils.getValue(this.shape.style,"bowing",d.bowing);f.hachureAngle=mxUtils.getValue(this.shape.style,"hachureAngle",d.hachureAngle);f.curveFitting=mxUtils.getValue(this.shape.style,"curveFitting",d.curveFitting);f.roughness=mxUtils.getValue(this.shape.style,"jiggle",d.roughness);f.simplification=
+this.path=[];this.passThrough=!1}b.prototype.moveOp="M";b.prototype.lineOp="L";b.prototype.quadOp="Q";b.prototype.curveOp="C";b.prototype.closeOp="Z";b.prototype.getStyle=function(b,c){var f=1;if(null!=this.shape.state){var d=this.shape.state.cell.id;if(null!=d)for(var e=0;e<d.length;e++)f=(f<<5)-f+d.charCodeAt(e)<<0}f={strokeWidth:this.canvas.state.strokeWidth,seed:f,preserveVertices:!0};d=this.rc.getDefaultOptions();f.stroke=b?"none"===this.canvas.state.strokeColor?"transparent":this.canvas.state.strokeColor:
+"none";e=null;(f.filled=c)?(f.fill="none"===this.canvas.state.fillColor?"":this.canvas.state.fillColor,e="none"===this.canvas.state.gradientColor?null:this.canvas.state.gradientColor):f.fill="";f.bowing=mxUtils.getValue(this.shape.style,"bowing",d.bowing);f.hachureAngle=mxUtils.getValue(this.shape.style,"hachureAngle",d.hachureAngle);f.curveFitting=mxUtils.getValue(this.shape.style,"curveFitting",d.curveFitting);f.roughness=mxUtils.getValue(this.shape.style,"jiggle",d.roughness);f.simplification=
mxUtils.getValue(this.shape.style,"simplification",d.simplification);f.disableMultiStroke=mxUtils.getValue(this.shape.style,"disableMultiStroke",d.disableMultiStroke);f.disableMultiStrokeFill=mxUtils.getValue(this.shape.style,"disableMultiStrokeFill",d.disableMultiStrokeFill);var l=mxUtils.getValue(this.shape.style,"hachureGap",-1);f.hachureGap="auto"==l?-1:l;f.dashGap=mxUtils.getValue(this.shape.style,"dashGap",l);f.dashOffset=mxUtils.getValue(this.shape.style,"dashOffset",l);f.zigzagOffset=mxUtils.getValue(this.shape.style,
"zigzagOffset",l);l=mxUtils.getValue(this.shape.style,"fillWeight",-1);f.fillWeight="auto"==l?-1:l;l=mxUtils.getValue(this.shape.style,"fillStyle","auto");"auto"==l&&(l=mxUtils.hex2rgb(null!=this.shape.state?this.shape.state.view.graph.shapeBackgroundColor:Editor.isDarkMode()?Editor.darkColor:"#ffffff"),l=null!=f.fill&&(null!=e||null!=l&&f.fill==l)?"solid":d.fillStyle);f.fillStyle=l;return f};b.prototype.begin=function(){this.passThrough?this.originalBegin.apply(this.canvas,arguments):this.path=[]};
b.prototype.end=function(){this.passThrough&&this.originalEnd.apply(this.canvas,arguments)};b.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var b=2;b<arguments.length;b+=2)this.lastX=arguments[b-1],this.lastY=arguments[b],this.path.push(this.canvas.format(this.lastX)),this.path.push(this.canvas.format(this.lastY))};b.prototype.lineTo=function(b,c){this.passThrough?this.originalLineTo.apply(this.canvas,arguments):(this.addOp(this.lineOp,b,c),this.lastX=
@@ -10562,7 +10564,7 @@ Editor.GUID_LENGTH=20;Editor.guid=function(b){b=null!=b?b:Editor.GUID_LENGTH;for
null!=c&&"mxlibrary"!=c.nodeName?this.extractGraphModel(c):null;if(null!=c){var f=c.getElementsByTagName("parsererror");if(null!=f&&0<f.length){var f=f[0],d=f.getElementsByTagName("div");null!=d&&0<d.length&&(f=d[0]);throw{message:mxUtils.getTextContent(f)};}if("mxGraphModel"==c.nodeName){f=c.getAttribute("style")||"default-style2";if("1"==urlParams.embed||null!=f&&""!=f)f!=this.graph.currentStyle&&(d=null!=this.graph.themes?this.graph.themes[f]:mxUtils.load(STYLE_PATH+"/"+f+".xml").getDocumentElement(),
null!=d&&(e=new mxCodec(d.ownerDocument),e.decode(d,this.graph.getStylesheet())));else if(d=null!=this.graph.themes?this.graph.themes["default-old"]:mxUtils.load(STYLE_PATH+"/default-old.xml").getDocumentElement(),null!=d){var e=new mxCodec(d.ownerDocument);e.decode(d,this.graph.getStylesheet())}this.graph.currentStyle=f;this.graph.mathEnabled="1"==urlParams.math||"1"==c.getAttribute("math");f=c.getAttribute("backgroundImage");null!=f?this.graph.setBackgroundImage(this.graph.parseBackgroundImage(f)):
this.graph.setBackgroundImage(null);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();this.graph.setShadowVisible("1"==c.getAttribute("shadow"),!1);if(f=c.getAttribute("extFonts"))try{for(f=f.split("|").map(function(b){b=b.split("^");return{name:b[0],url:b[1]}}),d=0;d<f.length;d++)this.graph.addExtFont(f[d].name,
-f[d].url)}catch(P){console.log("ExtFonts format error: "+P.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}b.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var e=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(b,c){b=null!=b?b:!0;var f=e.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&f.setAttribute("style",
+f[d].url)}catch(O){console.log("ExtFonts format error: "+O.message)}else null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(this.graph.extFonts=[])}b.apply(this,arguments)}else throw{message:mxResources.get("notADiagramFile")||"Invalid data",toString:function(){return this.message}};};var e=Editor.prototype.getGraphXml;Editor.prototype.getGraphXml=function(b,c){b=null!=b?b:!0;var f=e.apply(this,arguments);null!=this.graph.currentStyle&&"default-style2"!=this.graph.currentStyle&&f.setAttribute("style",
this.graph.currentStyle);var d=this.graph.getBackgroundImageObject(this.graph.backgroundImage,c);null!=d&&f.setAttribute("backgroundImage",JSON.stringify(d));f.setAttribute("math",this.graph.mathEnabled?"1":"0");f.setAttribute("shadow",this.graph.shadowVisible?"1":"0");null!=this.graph.extFonts&&0<this.graph.extFonts.length&&(d=this.graph.extFonts.map(function(b){return b.name+"^"+b.url}),f.setAttribute("extFonts",d.join("|")));return f};Editor.prototype.isDataSvg=function(b){try{var c=mxUtils.parseXml(b).documentElement.getAttribute("content");
if(null!=c&&(null!=c&&"<"!=c.charAt(0)&&"%"!=c.charAt(0)&&(c=unescape(window.atob?atob(c):Base64.decode(cont,c))),null!=c&&"%"==c.charAt(0)&&(c=decodeURIComponent(c)),null!=c&&0<c.length)){var f=mxUtils.parseXml(c).documentElement;return"mxfile"==f.nodeName||"mxGraphModel"==f.nodeName}}catch(U){}return!1};Editor.prototype.extractGraphModel=function(b,c,f){return Editor.extractGraphModel.apply(this,arguments)};var d=Editor.prototype.resetGraph;Editor.prototype.resetGraph=function(){this.graph.mathEnabled=
"1"==urlParams.math;this.graph.view.x0=null;this.graph.view.y0=null;mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath?!0:this.originalNoForeignObject;this.graph.useCssTransforms=!mxClient.NO_FO&&this.isChromelessView()&&this.graph.isCssTransformsSupported();this.graph.updateCssTransform();d.apply(this,arguments)};var c=Editor.prototype.updateGraphComponents;Editor.prototype.updateGraphComponents=function(){c.apply(this,arguments);mxClient.NO_FO=this.graph.mathEnabled&&!this.useForeignObjectForMath&&
@@ -10589,8 +10591,8 @@ b+'";src: url("'+c+'")}'})(c[l].name,c[l].url);e()}else b()};Editor.prototype.ad
d.createElementNS(mxConstants.NS_SVG,"defs"):d.createElement("defs"),null!=b.firstChild?b.insertBefore(f,b.firstChild):b.appendChild(f)):f=f[0];d=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"style"):d.createElement("style");d.setAttribute("type","text/css");mxUtils.setTextContent(d,c);f.appendChild(d)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,c,f){var d=mxClient.IS_FF?8192:16384;
return Math.min(f,Math.min(d/b,d/c))};Editor.prototype.exportToCanvas=function(b,c,f,d,e,l,m,g,k,p,q,t,n,y,u,v,B,A){try{l=null!=l?l:!0;m=null!=m?m:!0;t=null!=t?t:this.graph;n=null!=n?n:0;var x=k?null:t.background;x==mxConstants.NONE&&(x=null);null==x&&(x=d);null==x&&0==k&&(x=v?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(t.getSvg(null,null,n,y,null,m,null,null,null,p,null,v,B,A),mxUtils.bind(this,function(f){try{var d=new Image;d.onload=mxUtils.bind(this,function(){try{var m=
function(){mxClient.IS_SF?window.setTimeout(function(){y.drawImage(d,0,0);b(k,f)},0):(y.drawImage(d,0,0),b(k,f))},k=document.createElement("canvas"),p=parseInt(f.getAttribute("width")),q=parseInt(f.getAttribute("height"));g=null!=g?g:1;null!=c&&(g=l?Math.min(1,Math.min(3*c/(4*q),c/p)):c/p);g=this.getMaxCanvasScale(p,q,g);p=Math.ceil(g*p);q=Math.ceil(g*q);k.setAttribute("width",p);k.setAttribute("height",q);var y=k.getContext("2d");null!=x&&(y.beginPath(),y.rect(0,0,p,q),y.fillStyle=x,y.fill());1!=
-g&&y.scale(g,g);if(u){var v=t.view,B=v.scale;v.scale=1;var A=btoa(unescape(encodeURIComponent(v.createSvgGrid(v.gridColor))));v.scale=B;var A="data:image/svg+xml;base64,"+A,C=t.gridSize*v.gridSteps*g,E=t.getGraphBounds(),J=v.translate.x*B,z=v.translate.y*B,M=J+(E.x-J)/B-n,D=z+(E.y-z)/B-n,G=new Image;G.onload=function(){try{for(var b=-Math.round(C-mxUtils.mod((J-M)*g,C)),c=-Math.round(C-mxUtils.mod((z-D)*g,C));b<p;b+=C)for(var f=c;f<q;f+=C)y.drawImage(G,b/g,f/g);m()}catch(ya){null!=e&&e(ya)}};G.onerror=
-function(b){null!=e&&e(b)};G.src=A}else m()}catch(wa){null!=e&&e(wa)}});d.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(f);this.graph.mathEnabled&&this.addMathCss(f);var m=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(f,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(f))}catch(ea){null!=e&&e(ea)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(f,b),this.loadFonts(m)}catch(ga){null!=e&&e(ga)}}))}catch(ea){null!=
+g&&y.scale(g,g);if(u){var v=t.view,B=v.scale;v.scale=1;var A=btoa(unescape(encodeURIComponent(v.createSvgGrid(v.gridColor))));v.scale=B;var A="data:image/svg+xml;base64,"+A,C=t.gridSize*v.gridSteps*g,F=t.getGraphBounds(),K=v.translate.x*B,z=v.translate.y*B,E=K+(F.x-K)/B-n,M=z+(F.y-z)/B-n,D=new Image;D.onload=function(){try{for(var b=-Math.round(C-mxUtils.mod((K-E)*g,C)),c=-Math.round(C-mxUtils.mod((z-M)*g,C));b<p;b+=C)for(var f=c;f<q;f+=C)y.drawImage(D,b/g,f/g);m()}catch(ya){null!=e&&e(ya)}};D.onerror=
+function(b){null!=e&&e(b)};D.src=A}else m()}catch(wa){null!=e&&e(wa)}});d.onerror=function(b){null!=e&&e(b)};p&&this.graph.addSvgShadow(f);this.graph.mathEnabled&&this.addMathCss(f);var m=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(f,this.resolvedFontCss),d.src=Editor.createSvgDataUri(mxUtils.getXml(f))}catch(ea){null!=e&&e(ea)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(f,b),this.loadFonts(m)}catch(ga){null!=e&&e(ga)}}))}catch(ea){null!=
e&&e(ea)}}),f,q)}catch(ha){null!=e&&e(ha)}};Editor.crcTable=[];for(var g=0;256>g;g++)for(var k=g,n=0;8>n;n++)k=1==(k&1)?3988292384^k>>>1:k>>>1,Editor.crcTable[g]=k;Editor.updateCRC=function(b,c,f,d){for(var e=0;e<d;e++)b=Editor.crcTable[(b^c.charCodeAt(f+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var c=-1,f=0;f<b.length;f++)c=c>>>8^Editor.crcTable[(c^b.charCodeAt(f))&255];return(c^-1)>>>0};Editor.writeGraphModelToPng=function(b,c,f,d,e){function l(b,c){var f=k;k+=c;return b.substring(f,
k)}function m(b){b=l(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function g(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+1);b=window.atob?atob(b):Base64.decode(b,!0);var k=0;if(l(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(l(b,4),"IHDR"!=l(b,4))null!=e&&e();else{l(b,17);e=b.substring(0,k);do{var p=m(b);if("IDAT"==l(b,4)){e=b.substring(0,k-8);"pHYs"==c&&
"dpi"==f?(f=Math.round(d/.0254),f=g(f)+g(f)+String.fromCharCode(1)):f=f+String.fromCharCode(0)+("zTXt"==c?String.fromCharCode(0):"")+d;d=4294967295;d=Editor.updateCRC(d,c,0,4);d=Editor.updateCRC(d,f,0,f.length);e+=g(f.length)+c+f+g(d^4294967295);e+=b.substring(k-8,b.length);break}e+=b.substring(k-8,k-4+p);l(b,p);l(b,4)}while(p);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";
@@ -10609,77 +10611,78 @@ type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity
type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",
min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},
-{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",
-type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=
-[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",
-dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",
-type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",
-type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},
-{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=
-[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},
-{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=[{name:"width",dispName:"Title Width",type:"float",defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",
-stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",font:"#ffffff"},{fill:"#008a00",stroke:"#005700",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},
-{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",
-stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",
-gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(b,c,f){if(null!=c){var d=function(b){if(null!=b)if(f)for(var d=
-0;d<b.length;d++)c[b[d].name]=b[d];else for(var e in c){for(var l=!1,d=0;d<b.length;d++)if(b[d].name==e&&b[d].type==c[e].type){l=!0;break}l||delete c[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),
-d(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{d(JSON.parse(b))}catch(S){}}};var u=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.editorUi.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));u.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},f=b.vertices,d=b.edges,e=0;e<f.length;e++)this.findCommonProperties(f[e],c,
-0==e);for(e=0;e<d.length;e++)this.findCommonProperties(d[e],c,0==f.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,b))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){this.addActions(b,["copyStyle","pasteStyle"]);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(b,c,f){function d(b,
-c,f,d){t.getModel().beginUpdate();try{var e=[],l=[];if(null!=f.index){for(var m=[],g=f.parentRow.nextSibling;g&&g.getAttribute("data-pName")==b;)m.push(g.getAttribute("data-pValue")),g=g.nextSibling;f.index<m.length?null!=d?m.splice(d,1):m[f.index]=c:m.push(c);null!=f.size&&m.length>f.size&&(m=m.slice(0,f.size));c=m.join(",");null!=f.countProperty&&(t.setCellStyles(f.countProperty,m.length,t.getSelectionCells()),e.push(f.countProperty),l.push(m.length))}t.setCellStyles(b,c,t.getSelectionCells());
-e.push(b);l.push(c);if(null!=f.dependentProps)for(b=0;b<f.dependentProps.length;b++){var k=f.dependentPropsDefVal[b],p=f.dependentPropsVals[b];if(p.length>c)p=p.slice(0,c);else for(var n=p.length;n<c;n++)p.push(k);p=p.join(",");t.setCellStyles(f.dependentProps[b],p,t.getSelectionCells());e.push(f.dependentProps[b]);l.push(p)}if("function"==typeof f.onChange)f.onChange(t,c);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",l,"cells",t.getSelectionCells()))}finally{t.getModel().endUpdate()}}
-function e(c,f,d){var e=mxUtils.getOffset(b,!0),l=mxUtils.getOffset(c,!0);f.style.position="absolute";f.style.left=l.x-e.x+"px";f.style.top=l.y-e.y+"px";f.style.width=c.offsetWidth+"px";f.style.height=c.offsetHeight-(d?4:0)+"px";f.style.zIndex=5}function l(b,c,f){var e=document.createElement("div");e.style.width="32px";e.style.height="4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,
-function(l){this.editorUi.pickColor(c,function(c){e.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(b,c,f)});mxEvent.consume(l)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function m(b,c,f,e,l,m,g){null!=c&&(c=c.split(","),n.push({name:b,values:c,type:f,defVal:e,countProperty:l,parentRow:m,isDeletable:!0,flipBkg:g}));btn=mxUtils.button("+",mxUtils.bind(q,function(c){for(var k=m,q=0;null!=k.nextSibling;)if(k.nextSibling.getAttribute("data-pName")==
-b)k=k.nextSibling,q++;else break;var t={type:f,parentRow:m,index:q,isDeletable:!0,defVal:e,countProperty:l},q=p(b,"",t,0==q%2,g);d(b,e,t);k.parentNode.insertBefore(q,k.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function g(b,c,f,d,e,l,m){if(0<e){var g=Array(e);c=null!=c?c.split(","):[];for(var k=0;k<e;k++)g[k]=null!=c[k]?c[k]:null!=d?d:"";n.push({name:b,values:g,type:f,defVal:d,parentRow:l,flipBkg:m,size:e})}return document.createElement("div")}
-function k(b,c,f){var e=document.createElement("input");e.type="checkbox";e.checked="1"==c;mxEvent.addListener(e,"change",function(){d(b,e.checked?"1":"0",f)});return e}function p(c,f,p,t,n){var y=p.dispName,u=p.type,v=document.createElement("tr");v.className="gePropRow"+(n?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";v.setAttribute("data-pName",c);v.setAttribute("data-pValue",f);t=!1;null!=p.index&&(v.setAttribute("data-index",p.index),y=(null!=y?y:"")+"["+p.index+"]",t=!0);var B=document.createElement("td");
-B.className="gePropRowCell";y=mxResources.get(y,null,y);mxUtils.write(B,y);B.setAttribute("title",y);t&&(B.style.textAlign="right");v.appendChild(B);B=document.createElement("td");B.className="gePropRowCell";if("color"==u)B.appendChild(l(c,f,p));else if("bool"==u||"boolean"==u)B.appendChild(k(c,f,p));else if("enum"==u){var A=p.enumList;for(n=0;n<A.length;n++)if(y=A[n],y.val==f){mxUtils.write(B,mxResources.get(y.dispName,null,y.dispName));break}mxEvent.addListener(B,"click",mxUtils.bind(q,function(){var l=
-document.createElement("select");e(B,l);for(var m=0;m<A.length;m++){var g=A[m],k=document.createElement("option");k.value=mxUtils.htmlEntities(g.val);mxUtils.write(k,mxResources.get(g.dispName,null,g.dispName));l.appendChild(k)}l.value=f;b.appendChild(l);mxEvent.addListener(l,"change",function(){var b=mxUtils.htmlEntities(l.value);d(c,b,p)});l.focus();mxEvent.addListener(l,"blur",function(){b.removeChild(l)})}))}else"dynamicArr"==u?B.appendChild(m(c,f,p.subType,p.subDefVal,p.countProperty,v,n)):"staticArr"==
-u?B.appendChild(g(c,f,p.subType,p.subDefVal,p.size,v,n)):"readOnly"==u?(n=document.createElement("input"),n.setAttribute("readonly",""),n.value=f,n.style.width="96px",n.style.borderWidth="0px",B.appendChild(n)):(B.innerHTML=f,mxEvent.addListener(B,"click",mxUtils.bind(q,function(){function l(){var b=m.value,b=0==b.length&&"string"!=u?0:b;p.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",u="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=p.min&&b<p.min?b=p.min:null!=p.max&&b>p.max&&
-(b=p.max);b=mxUtils.htmlEntities(("int"==u?parseInt(b):b)+"");d(c,b,p)}var m=document.createElement("input");e(B,m,!0);m.value=f;m.className="gePropEditor";"int"!=u&&"float"!=u||p.allowAuto||(m.type="number",m.step="int"==u?"1":"any",null!=p.min&&(m.min=parseFloat(p.min)),null!=p.max&&(m.max=parseFloat(p.max)));b.appendChild(m);mxEvent.addListener(m,"keypress",function(b){13==b.keyCode&&l()});m.focus();mxEvent.addListener(m,"blur",function(){l()})})));p.isDeletable&&(n=mxUtils.button("-",mxUtils.bind(q,
-function(b){d(c,"",p,p.index);mxEvent.consume(b)})),n.style.height="16px",n.style.width="25px",n.style["float"]="right",n.className="geColorBtn",B.appendChild(n));v.appendChild(B);return v}var q=this,t=this.editorUi.editor.graph,n=[];b.style.position="relative";b.style.padding="0";var y=document.createElement("table");y.className="geProperties";y.style.whiteSpace="nowrap";y.style.width="100%";var u=document.createElement("tr");u.className="gePropHeader";var v=document.createElement("th");v.className=
-"gePropHeaderCell";var B=document.createElement("img");B.src=Sidebar.prototype.expandedImage;B.style.verticalAlign="middle";v.appendChild(B);mxUtils.write(v,mxResources.get("property"));u.style.cursor="pointer";var A=function(){var c=y.querySelectorAll(".gePropNonHeaderRow"),f;if(q.editorUi.propertiesCollapsed){B.src=Sidebar.prototype.collapsedImage;f="none";for(var d=b.childNodes.length-1;0<=d;d--)try{var e=b.childNodes[d],l=e.nodeName.toUpperCase();"INPUT"!=l&&"SELECT"!=l||b.removeChild(e)}catch(la){}}else B.src=
-Sidebar.prototype.expandedImage,f="";for(d=0;d<c.length;d++)c[d].style.display=f};mxEvent.addListener(u,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;A()});u.appendChild(v);v=document.createElement("th");v.className="gePropHeaderCell";v.innerHTML=mxResources.get("value");u.appendChild(v);y.appendChild(u);var x=!1,C=!1,u=null;1==f.vertices.length&&0==f.edges.length?u=f.vertices[0].id:0==f.vertices.length&&1==f.edges.length&&(u=f.edges[0].id);null!=u&&y.appendChild(p("id",
-mxUtils.htmlEntities(u),{dispName:"ID",type:"readOnly"},!0,!1));for(var E in c)if(u=c[E],"function"!=typeof u.isVisible||u.isVisible(f,this)){var z=null!=f.style[E]?mxUtils.htmlEntities(f.style[E]+""):null!=u.getDefaultValue?u.getDefaultValue(f,this):u.defVal;if("separator"==u.type)C=!C;else{if("staticArr"==u.type)u.size=parseInt(f.style[u.sizeProperty]||c[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var J=u.dependentProps,M=[],D=[],v=0;v<J.length;v++){var G=f.style[J[v]];D.push(c[J[v]].subDefVal);
-M.push(null!=G?G.split(","):[])}u.dependentPropsDefVal=D;u.dependentPropsVals=M}y.appendChild(p(E,z,u,x,C));x=!x}}for(v=0;v<n.length;v++)for(u=n[v],c=u.parentRow,f=0;f<u.values.length;f++)E=p(u.name,u.values[f],{type:u.type,parentRow:u.parentRow,isDeletable:u.isDeletable,index:f,defVal:u.defVal,countProperty:u.countProperty,size:u.size},0==f%2,u.flipBkg),c.parentNode.insertBefore(E,c.nextSibling),c=E;b.appendChild(y);A();return b};StyleFormatPanel.prototype.addStyles=function(b){function c(b){mxEvent.addListener(b,
-"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var f=this.editorUi,d=f.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var l="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),
-m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.position="relative";m.style.textAlign="center";m.style.width="210px";for(var g=[],k=0;k<this.defaultColorSchemes.length;k++){var p=document.createElement("div");p.style.display="inline-block";p.style.width="6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(p,
-"click",mxUtils.bind(this,function(){q(b)}))})(k);g.push(p);m.appendChild(p)}var q=mxUtils.bind(this,function(b){null!=g[b]&&(null!=this.format.currentScheme&&null!=g[this.format.currentScheme]&&(g[this.format.currentScheme].style.background="transparent"),this.format.currentScheme=b,t(this.defaultColorSchemes[this.format.currentScheme]),g[this.format.currentScheme].style.background="#84d7ff")}),t=mxUtils.bind(this,function(b){var c=mxUtils.bind(this,function(b){var c=mxUtils.button("",mxUtils.bind(this,
-function(c){d.getModel().beginUpdate();try{for(var e=f.getSelectionState().cells,m=0;m<e.length;m++){for(var g=d.getModel().getStyle(e[m]),k=0;k<l.length;k++)g=mxUtils.removeStylename(g,l[k]);var p=d.getModel().isVertex(e[m])?d.defaultVertexStyle:d.defaultEdgeStyle;null!=b?(mxEvent.isShiftDown(c)||(g=""==b.fill?mxUtils.setStyle(g,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(g,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,null)),g=mxUtils.setStyle(g,mxConstants.STYLE_GRADIENTCOLOR,
-b.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(c)||mxClient.IS_MAC&&mxEvent.isMetaDown(c)||!d.getModel().isVertex(e[m])||(g=mxUtils.setStyle(g,mxConstants.STYLE_FONTCOLOR,b.font||mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(c)||(g=""==b.stroke?mxUtils.setStyle(g,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(g,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null)))):(g=mxUtils.setStyle(g,
-mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,"#ffffff")),g=mxUtils.setStyle(g,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,"#000000")),g=mxUtils.setStyle(g,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(e[m])&&(g=mxUtils.setStyle(g,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(e[m],g)}}finally{d.getModel().endUpdate()}}));
-c.className="geStyleButton";c.style.width="36px";c.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";c.style.margin="0px 6px 6px 0px";if(null!=b){var m="1"==urlParams.sketch?"2px solid":"1px solid";null!=b.gradient?mxClient.IS_IE&&10>document.documentMode?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?
-c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=""==b.fill?mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff"):b.fill||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff");c.style.border=b.stroke==mxConstants.NONE?m+" transparent":""==b.stroke?m+" "+mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":
-Editor.darkColor):m+" "+(b.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor));null!=b.title&&c.setAttribute("title",b.title)}else{var m=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=m;c.style.border="1px solid "+g}c.style.borderRadius="0";e.appendChild(c)});e.innerHTML="";for(var m=0;m<b.length;m++)0<
-m&&0==mxUtils.mod(m,4)&&mxUtils.br(e),c(b[m])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):q(this.format.currentScheme);var k=10>=this.defaultColorSchemes.length?28:8,n=document.createElement("div");n.style.cssText="position:absolute;left:10px;top:8px;bottom:"+k+"px;width:20px;margin:4px;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(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var y=document.createElement("div");y.style.cssText="position:absolute;left:202px;top:8px;bottom:"+k+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
-1<this.defaultColorSchemes.length&&(b.appendChild(n),b.appendChild(y));mxEvent.addListener(y,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));c(n);c(y);t(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(m);return b};StyleFormatPanel.prototype.addEditOps=function(b){var c=this.editorUi.getSelectionState(),f=this.editorUi.editor.graph,d=null;1==c.cells.length&&(d=mxUtils.button(mxResources.get("editStyle"),
-mxUtils.bind(this,function(b){this.editorUi.actions.get("editStyle").funct()})),d.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),d.style.width="210px",d.style.marginBottom="2px",b.appendChild(d));f=1==c.cells.length?f.view.getState(c.cells[0]):null;null!=f&&null!=f.shape&&null!=f.shape.stencil?(c=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editShape").funct()})),c.setAttribute("title",
-mxResources.get("editShape")),c.style.marginBottom="2px",null==d?c.style.width="210px":(d.style.width="104px",c.style.width="104px",c.style.marginLeft="2px"),b.appendChild(c)):c.image&&0<c.cells.length&&(c=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(b){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==d?c.style.width="210px":(d.style.width="104px",c.style.width="104px",c.style.marginLeft="2px"),
-b.appendChild(c));return b}}Graph.customFontElements={};Graph.recentCustomFonts={};Graph.isGoogleFontUrl=function(b){return b.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS};Graph.isCssFontUrl=function(b){return Graph.isGoogleFontUrl(b)};Graph.createFontElement=function(b,c){var f;Graph.isCssFontUrl(c)?(f=document.createElement("link"),f.setAttribute("rel","stylesheet"),f.setAttribute("type","text/css"),f.setAttribute("charset","UTF-8"),f.setAttribute("href",c)):(f=document.createElement("style"),
-mxUtils.write(f,'@font-face {\nfont-family: "'+b+'";\nsrc: url("'+c+'");\n}'));return f};Graph.addFont=function(b,c,f){if(null!=b&&0<b.length&&null!=c&&0<c.length){var d=b.toLowerCase();if("helvetica"!=d&&"arial"!=b&&"sans-serif"!=d){var e=Graph.customFontElements[d];null!=e&&e.url!=c&&(e.elt.parentNode.removeChild(e.elt),e=null);null==e?(e=c,"http:"==c.substring(0,5)&&(e=PROXY_URL+"?url="+encodeURIComponent(c)),e={name:b,url:c,elt:Graph.createFontElement(b,e)},Graph.customFontElements[d]=e,Graph.recentCustomFonts[d]=
-e,c=document.getElementsByTagName("head")[0],null!=f&&("link"==e.elt.nodeName.toLowerCase()?(e.elt.onload=f,e.elt.onerror=f):f()),null!=c&&c.appendChild(e.elt)):null!=f&&f()}else null!=f&&f()}else null!=f&&f();return b};Graph.getFontUrl=function(b,c){var f=Graph.customFontElements[b.toLowerCase()];null!=f&&(c=f.url);return c};Graph.processFontAttributes=function(b){b=b.getElementsByTagName("*");for(var c=0;c<b.length;c++){var f=b[c].getAttribute("data-font-src");if(null!=f){var d="FONT"==b[c].nodeName?
-b[c].getAttribute("face"):b[c].style.fontFamily;null!=d&&Graph.addFont(d,f)}}};Graph.processFontStyle=function(b){if(null!=b){var c=mxUtils.getValue(b,"fontSource",null);if(null!=c){var f=mxUtils.getValue(b,mxConstants.STYLE_FONTFAMILY,null);null!=f&&Graph.addFont(f,decodeURIComponent(c))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible=
-"0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;Graph.prototype.defaultMathEnabled=!1;var x=Graph.prototype.init;Graph.prototype.init=function(){function b(b){c=b}x.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var c=
-null;mxEvent.addListener(this.container,"mouseenter",b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){c=null});this.isMouseInsertPoint=function(){return null!=c};var f=this.getInsertPoint;this.getInsertPoint=function(){return null!=c?this.getPointForEvent(c):f.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var c=this.graph.getCellStyle(b);if(null!=c&&"rack"==c.childLayout){var f=new mxStackLayout(this.graph,
-!1);f.gridSize=null!=c.rackUnitSize?parseFloat(c.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;f.marginLeft=c.marginLeft||0;f.marginRight=c.marginRight||0;f.marginTop=c.marginTop||0;f.marginBottom=c.marginBottom||0;f.allowGaps=c.allowGaps||0;f.horizontal="1"==mxUtils.getValue(c,"horizontalRack","0");f.resizeParent=!1;f.fill=!0;return f}return d.apply(this,arguments)};this.updateGlobalUrlVariables()};var A=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=
-function(b,c){return Graph.processFontStyle(A.apply(this,arguments))};var z=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,c,f,d,e,l,m,g,k,p,q){z.apply(this,arguments);Graph.processFontAttributes(q)};var B=mxText.prototype.redraw;mxText.prototype.redraw=function(){B.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,c,f){function d(){for(var b=m.getSelectionCells(),
-c=[],f=0;f<b.length;f++)m.isCellVisible(b[f])&&c.push(b[f]);m.setSelectionCells(c)}function e(b){m.hiddenTags=b?[]:g.slice();d();m.refresh()}function l(b,f){p.innerHTML="";if(0<b.length){var l=document.createElement("table");l.setAttribute("cellpadding","2");l.style.boxSizing="border-box";l.style.tableLayout="fixed";l.style.width="100%";var k=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var l=0>mxUtils.indexOf(m.hiddenTags,b),p=document.createElement("tr"),
-q=document.createElement("td");q.style.align="center";q.style.width="16px";var t=document.createElement("img");t.setAttribute("src",l?Editor.visibleImage:Editor.hiddenImage);t.setAttribute("title",mxResources.get(l?"hideIt":"show",[b]));mxUtils.setOpacity(t,l?75:25);t.style.verticalAlign="middle";t.style.cursor="pointer";t.style.width="16px";if(c||Editor.isDarkMode())t.style.filter="invert(100%)";q.appendChild(t);mxEvent.addListener(t,"click",function(c){var f=mxUtils.indexOf(m.hiddenTags,b);mxEvent.isShiftDown(c)?
-e(0<=mxUtils.indexOf(m.hiddenTags,b)):(0>f?m.hiddenTags.push(b):0<=f&&m.hiddenTags.splice(f,1),d(),m.refresh());mxEvent.consume(c)});p.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,l?100:40);q.appendChild(a);
-mxEvent.addListener(q,"click",function(c){if(mxEvent.isShiftDown(c)){e(!0);var f=m.getCellsForTags([b],null,null,!0);m.isEnabled()?m.setSelectionCells(f):m.highlightCells(f)}else if(l&&0<m.hiddenTags.length)e(!0);else{var f=g.slice(),k=mxUtils.indexOf(f,b);f.splice(k,1);m.hiddenTags=f;d();m.refresh()}mxEvent.consume(c)});p.appendChild(q);if(m.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==f){q.style.align="center";
-q.style.width="16px";t=document.createElement("img");t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(t,l?75:25);t.style.verticalAlign="middle";t.style.cursor="pointer";t.style.width="16px";if(c||Editor.isDarkMode())t.style.filter="invert(100%)";mxEvent.addListener(t,"click",function(c){var f=mxUtils.indexOf(g,b);0<=f&&g.splice(f,1);m.removeTagsForCells(m.model.getDescendants(m.model.getRoot()),[b]);m.refresh();mxEvent.consume(c)});
-q.appendChild(t)}else{var n=document.createElement("input");n.setAttribute("type","checkbox");n.style.margin="0px";n.defaultChecked=null!=f&&0<=mxUtils.indexOf(f,b);n.checked=n.defaultChecked;n.style.background="transparent";n.setAttribute("title",mxResources.get(n.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(n,"change",function(c){n.checked?m.addTagsForCells(m.getSelectionCells(),[b]):m.removeTagsForCells(m.getSelectionCells(),[b]);mxEvent.consume(c)});q.appendChild(n)}p.appendChild(q)}k.appendChild(p)})(b[q]);
-l.appendChild(k);p.appendChild(l)}}var m=this,g=m.hiddenTags.slice(),k=document.createElement("div");k.style.userSelect="none";k.style.overflow="hidden";k.style.padding="10px";k.style.height="100%";var p=document.createElement("div");p.style.boxSizing="border-box";p.style.borderRadius="4px";p.style.userSelect="none";p.style.overflow="auto";p.style.position="absolute";p.style.left="10px";p.style.right="10px";p.style.top="10px";p.style.border=m.isEnabled()?"1px solid #808080":"none";p.style.bottom=
-m.isEnabled()?"48px":"10px";k.appendChild(p);var q=mxUtils.button(mxResources.get("reset"),function(b){m.hiddenTags=[];mxEvent.isShiftDown(b)||(g=m.hiddenTags.slice());d();m.refresh()});q.setAttribute("title",mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var t=mxUtils.button(mxResources.get("add"),function(){null!=f&&f(g,function(b){g=b;n()})});t.setAttribute("title",mxResources.get("add"));t.className="geBtn";t.style.margin="0";m.addListener(mxEvent.ROOT,function(){g=m.hiddenTags.slice()});
-var n=mxUtils.bind(this,function(c,f){if(b()){for(var d=m.getAllTags(),e=0;e<d.length;e++)0>mxUtils.indexOf(g,d[e])&&g.push(d[e]);g.sort();m.isSelectionEmpty()?l(g):l(g,m.getCommonTagsForCells(m.getSelectionCells()))}});m.selectionModel.addListener(mxEvent.CHANGE,n);m.model.addListener(mxEvent.CHANGE,n);m.addListener(mxEvent.REFRESH,n);var y=document.createElement("div");y.style.boxSizing="border-box";y.style.whiteSpace="nowrap";y.style.position="absolute";y.style.overflow="hidden";y.style.bottom=
-"0px";y.style.height="42px";y.style.right="10px";y.style.left="10px";m.isEnabled()&&(y.appendChild(q),y.appendChild(t),k.appendChild(y));return{div:k,refresh:n}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,b=null!=b?b.slice():[],c;for(c in Graph.customFontElements){var f=Graph.customFontElements[c];b.push({name:f.name,url:f.url})}return b};Graph.prototype.setFont=function(b,c){Graph.addFont(b,c);document.execCommand("fontname",!1,b);if(null!=c){var f=this.cellEditor.textarea.getElementsByTagName("font");
-c=Graph.getFontUrl(b,c);for(var d=0;d<f.length;d++)f[d].getAttribute("face")==b&&f[d].getAttribute("data-font-src")!=c&&f[d].setAttribute("data-font-src",c)}};var y=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return y.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};
-var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var c in b)this.globalVars[c]=b[c]}catch(K){null!=window.console&&console.log("Error in vars URL parameter: "+K)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var C=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var c=C.apply(this,arguments);null==c&&null!=this.globalVars&&(c=this.globalVars[b]);return c};Graph.prototype.getDefaultStylesheet=
-function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var G=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,c,f,d,e,l,m,g,k,p,q,t,n,y){var u=null,v=null,B=null;t||null==this.themes||"darkTheme"!=this.defaultThemeName||(u=this.stylesheet,v=this.shapeForegroundColor,B=this.shapeBackgroundColor,this.shapeForegroundColor=
-"darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=G.apply(this,arguments),x=this.getCustomFonts();if(q&&0<x.length){var C=A.ownerDocument,E=null!=C.createElementNS?C.createElementNS(mxConstants.NS_SVG,"style"):C.createElement("style");null!=C.setAttributeNS?E.setAttributeNS("type","text/css"):E.setAttribute("type","text/css");for(var z=
-"",M="",D=0;D<x.length;D++){var I=x[D].name,J=x[D].url;Graph.isCssFontUrl(J)?z+="@import url("+J+");\n":M+='@font-face {\nfont-family: "'+I+'";\nsrc: url("'+J+'");\n}\n'}E.appendChild(C.createTextNode(z+M));A.getElementsByTagName("defs")[0].appendChild(E)}null!=u&&(this.shapeBackgroundColor=B,this.shapeForegroundColor=v,this.stylesheet=u,this.refresh());return A};var F=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=F.apply(this,arguments);if(this.mathEnabled){var c=
+{name:"swimlaneHead",dispName:"Head Border",type:"bool",defVal:!0},{name:"swimlaneBody",dispName:"Body Border",type:"bool",defVal:!0},{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",
+type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},
+{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=
+[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},
+{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",
+type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",
+dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,
+defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];
+mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=[{name:"width",dispName:"Title Width",type:"float",
+defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",font:"#ffffff"},{fill:"#008a00",stroke:"#005700",
+font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},
+{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",
+gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},
+{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(b,c,f){if(null!=c){var d=function(b){if(null!=b)if(f)for(var d=0;d<b.length;d++)c[b[d].name]=b[d];else for(var e in c){for(var l=!1,d=0;d<b.length;d++)if(b[d].name==e&&b[d].type==c[e].type){l=!0;break}l||delete c[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=
+e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),d(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{d(JSON.parse(b))}catch(S){}}};var u=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.editorUi.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));
+u.apply(this,arguments);if(Editor.enableCustomProperties){for(var c={},f=b.vertices,d=b.edges,e=0;e<f.length;e++)this.findCommonProperties(f[e],c,0==e);for(e=0;e<d.length;e++)this.findCommonProperties(d[e],c,0==f.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(c).length&&this.container.appendChild(this.addProperties(this.createPanel(),c,b))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){this.addActions(b,["copyStyle",
+"pasteStyle"]);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(b,c,f){function d(b,c,f,d){t.getModel().beginUpdate();try{var e=[],l=[];if(null!=f.index){for(var m=[],g=f.parentRow.nextSibling;g&&g.getAttribute("data-pName")==b;)m.push(g.getAttribute("data-pValue")),g=g.nextSibling;f.index<m.length?null!=d?m.splice(d,1):m[f.index]=c:m.push(c);null!=f.size&&m.length>f.size&&(m=m.slice(0,f.size));c=m.join(",");null!=f.countProperty&&
+(t.setCellStyles(f.countProperty,m.length,t.getSelectionCells()),e.push(f.countProperty),l.push(m.length))}t.setCellStyles(b,c,t.getSelectionCells());e.push(b);l.push(c);if(null!=f.dependentProps)for(b=0;b<f.dependentProps.length;b++){var k=f.dependentPropsDefVal[b],p=f.dependentPropsVals[b];if(p.length>c)p=p.slice(0,c);else for(var n=p.length;n<c;n++)p.push(k);p=p.join(",");t.setCellStyles(f.dependentProps[b],p,t.getSelectionCells());e.push(f.dependentProps[b]);l.push(p)}if("function"==typeof f.onChange)f.onChange(t,
+c);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",l,"cells",t.getSelectionCells()))}finally{t.getModel().endUpdate()}}function e(c,f,d){var e=mxUtils.getOffset(b,!0),l=mxUtils.getOffset(c,!0);f.style.position="absolute";f.style.left=l.x-e.x+"px";f.style.top=l.y-e.y+"px";f.style.width=c.offsetWidth+"px";f.style.height=c.offsetHeight-(d?4:0)+"px";f.style.zIndex=5}function l(b,c,f){var e=document.createElement("div");e.style.width="32px";e.style.height="4px";e.style.margin="2px";
+e.style.border="1px solid black";e.style.background=c&&"none"!=c?c:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(l){this.editorUi.pickColor(c,function(c){e.style.background="none"==c?"url('"+Dialog.prototype.noColorImage+"')":c;d(b,c,f)});mxEvent.consume(l)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function m(b,c,f,e,l,m,g){null!=c&&(c=c.split(","),n.push({name:b,values:c,type:f,defVal:e,countProperty:l,
+parentRow:m,isDeletable:!0,flipBkg:g}));btn=mxUtils.button("+",mxUtils.bind(q,function(c){for(var k=m,q=0;null!=k.nextSibling;)if(k.nextSibling.getAttribute("data-pName")==b)k=k.nextSibling,q++;else break;var t={type:f,parentRow:m,index:q,isDeletable:!0,defVal:e,countProperty:l},q=p(b,"",t,0==q%2,g);d(b,e,t);k.parentNode.insertBefore(q,k.nextSibling);mxEvent.consume(c)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function g(b,c,f,d,e,l,m){if(0<e){var g=Array(e);
+c=null!=c?c.split(","):[];for(var k=0;k<e;k++)g[k]=null!=c[k]?c[k]:null!=d?d:"";n.push({name:b,values:g,type:f,defVal:d,parentRow:l,flipBkg:m,size:e})}return document.createElement("div")}function k(b,c,f){var e=document.createElement("input");e.type="checkbox";e.checked="1"==c;mxEvent.addListener(e,"change",function(){d(b,e.checked?"1":"0",f)});return e}function p(c,f,p,t,n){var y=p.dispName,u=p.type,v=document.createElement("tr");v.className="gePropRow"+(n?"Dark":"")+(t?"Alt":"")+" gePropNonHeaderRow";
+v.setAttribute("data-pName",c);v.setAttribute("data-pValue",f);t=!1;null!=p.index&&(v.setAttribute("data-index",p.index),y=(null!=y?y:"")+"["+p.index+"]",t=!0);var B=document.createElement("td");B.className="gePropRowCell";y=mxResources.get(y,null,y);mxUtils.write(B,y);B.setAttribute("title",y);t&&(B.style.textAlign="right");v.appendChild(B);B=document.createElement("td");B.className="gePropRowCell";if("color"==u)B.appendChild(l(c,f,p));else if("bool"==u||"boolean"==u)B.appendChild(k(c,f,p));else if("enum"==
+u){var A=p.enumList;for(n=0;n<A.length;n++)if(y=A[n],y.val==f){mxUtils.write(B,mxResources.get(y.dispName,null,y.dispName));break}mxEvent.addListener(B,"click",mxUtils.bind(q,function(){var l=document.createElement("select");e(B,l);for(var m=0;m<A.length;m++){var g=A[m],k=document.createElement("option");k.value=mxUtils.htmlEntities(g.val);mxUtils.write(k,mxResources.get(g.dispName,null,g.dispName));l.appendChild(k)}l.value=f;b.appendChild(l);mxEvent.addListener(l,"change",function(){var b=mxUtils.htmlEntities(l.value);
+d(c,b,p)});l.focus();mxEvent.addListener(l,"blur",function(){b.removeChild(l)})}))}else"dynamicArr"==u?B.appendChild(m(c,f,p.subType,p.subDefVal,p.countProperty,v,n)):"staticArr"==u?B.appendChild(g(c,f,p.subType,p.subDefVal,p.size,v,n)):"readOnly"==u?(n=document.createElement("input"),n.setAttribute("readonly",""),n.value=f,n.style.width="96px",n.style.borderWidth="0px",B.appendChild(n)):(B.innerHTML=f,mxEvent.addListener(B,"click",mxUtils.bind(q,function(){function l(){var b=m.value,b=0==b.length&&
+"string"!=u?0:b;p.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",u="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=p.min&&b<p.min?b=p.min:null!=p.max&&b>p.max&&(b=p.max);b=mxUtils.htmlEntities(("int"==u?parseInt(b):b)+"");d(c,b,p)}var m=document.createElement("input");e(B,m,!0);m.value=f;m.className="gePropEditor";"int"!=u&&"float"!=u||p.allowAuto||(m.type="number",m.step="int"==u?"1":"any",null!=p.min&&(m.min=parseFloat(p.min)),null!=p.max&&(m.max=parseFloat(p.max)));b.appendChild(m);
+mxEvent.addListener(m,"keypress",function(b){13==b.keyCode&&l()});m.focus();mxEvent.addListener(m,"blur",function(){l()})})));p.isDeletable&&(n=mxUtils.button("-",mxUtils.bind(q,function(b){d(c,"",p,p.index);mxEvent.consume(b)})),n.style.height="16px",n.style.width="25px",n.style["float"]="right",n.className="geColorBtn",B.appendChild(n));v.appendChild(B);return v}var q=this,t=this.editorUi.editor.graph,n=[];b.style.position="relative";b.style.padding="0";var y=document.createElement("table");y.className=
+"geProperties";y.style.whiteSpace="nowrap";y.style.width="100%";var u=document.createElement("tr");u.className="gePropHeader";var v=document.createElement("th");v.className="gePropHeaderCell";var B=document.createElement("img");B.src=Sidebar.prototype.expandedImage;B.style.verticalAlign="middle";v.appendChild(B);mxUtils.write(v,mxResources.get("property"));u.style.cursor="pointer";var A=function(){var c=y.querySelectorAll(".gePropNonHeaderRow"),f;if(q.editorUi.propertiesCollapsed){B.src=Sidebar.prototype.collapsedImage;
+f="none";for(var d=b.childNodes.length-1;0<=d;d--)try{var e=b.childNodes[d],l=e.nodeName.toUpperCase();"INPUT"!=l&&"SELECT"!=l||b.removeChild(e)}catch(la){}}else B.src=Sidebar.prototype.expandedImage,f="";for(d=0;d<c.length;d++)c[d].style.display=f};mxEvent.addListener(u,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;A()});u.appendChild(v);v=document.createElement("th");v.className="gePropHeaderCell";v.innerHTML=mxResources.get("value");u.appendChild(v);y.appendChild(u);
+var x=!1,C=!1,u=null;1==f.vertices.length&&0==f.edges.length?u=f.vertices[0].id:0==f.vertices.length&&1==f.edges.length&&(u=f.edges[0].id);null!=u&&y.appendChild(p("id",mxUtils.htmlEntities(u),{dispName:"ID",type:"readOnly"},!0,!1));for(var F in c)if(u=c[F],"function"!=typeof u.isVisible||u.isVisible(f,this)){var K=null!=f.style[F]?mxUtils.htmlEntities(f.style[F]+""):null!=u.getDefaultValue?u.getDefaultValue(f,this):u.defVal;if("separator"==u.type)C=!C;else{if("staticArr"==u.type)u.size=parseInt(f.style[u.sizeProperty]||
+c[u.sizeProperty].defVal)||0;else if(null!=u.dependentProps){for(var z=u.dependentProps,D=[],E=[],v=0;v<z.length;v++){var M=f.style[z[v]];E.push(c[z[v]].subDefVal);D.push(null!=M?M.split(","):[])}u.dependentPropsDefVal=E;u.dependentPropsVals=D}y.appendChild(p(F,K,u,x,C));x=!x}}for(v=0;v<n.length;v++)for(u=n[v],c=u.parentRow,f=0;f<u.values.length;f++)F=p(u.name,u.values[f],{type:u.type,parentRow:u.parentRow,isDeletable:u.isDeletable,index:f,defVal:u.defVal,countProperty:u.countProperty,size:u.size},
+0==f%2,u.flipBkg),c.parentNode.insertBefore(F,c.nextSibling),c=F;b.appendChild(y);A();return b};StyleFormatPanel.prototype.addStyles=function(b){function c(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var f=this.editorUi,d=f.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";
+b.style.position="relative";b.appendChild(e);var l="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.position="relative";m.style.textAlign="center";m.style.width="210px";for(var g=[],k=0;k<this.defaultColorSchemes.length;k++){var p=document.createElement("div");p.style.display="inline-block";p.style.width=
+"6px";p.style.height="6px";p.style.marginLeft="4px";p.style.marginRight="3px";p.style.borderRadius="3px";p.style.cursor="pointer";p.style.background="transparent";p.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(b)}))})(k);g.push(p);m.appendChild(p)}var q=mxUtils.bind(this,function(b){null!=g[b]&&(null!=this.format.currentScheme&&null!=g[this.format.currentScheme]&&(g[this.format.currentScheme].style.background="transparent"),
+this.format.currentScheme=b,t(this.defaultColorSchemes[this.format.currentScheme]),g[this.format.currentScheme].style.background="#84d7ff")}),t=mxUtils.bind(this,function(b){var c=mxUtils.bind(this,function(b){var c=mxUtils.button("",mxUtils.bind(this,function(c){d.getModel().beginUpdate();try{for(var e=f.getSelectionState().cells,m=0;m<e.length;m++){for(var g=d.getModel().getStyle(e[m]),k=0;k<l.length;k++)g=mxUtils.removeStylename(g,l[k]);var p=d.getModel().isVertex(e[m])?d.defaultVertexStyle:d.defaultEdgeStyle;
+null!=b?(mxEvent.isShiftDown(c)||(g=""==b.fill?mxUtils.setStyle(g,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(g,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,null)),g=mxUtils.setStyle(g,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(c)||mxClient.IS_MAC&&mxEvent.isMetaDown(c)||!d.getModel().isVertex(e[m])||(g=mxUtils.setStyle(g,mxConstants.STYLE_FONTCOLOR,b.font||mxUtils.getValue(p,
+mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(c)||(g=""==b.stroke?mxUtils.setStyle(g,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(g,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,null)))):(g=mxUtils.setStyle(g,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FILLCOLOR,"#ffffff")),g=mxUtils.setStyle(g,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(p,mxConstants.STYLE_STROKECOLOR,"#000000")),g=mxUtils.setStyle(g,mxConstants.STYLE_GRADIENTCOLOR,
+mxUtils.getValue(p,mxConstants.STYLE_GRADIENTCOLOR,null)),d.getModel().isVertex(e[m])&&(g=mxUtils.setStyle(g,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(p,mxConstants.STYLE_FONTCOLOR,null))));d.getModel().setStyle(e[m],g)}}finally{d.getModel().endUpdate()}}));c.className="geStyleButton";c.style.width="36px";c.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";c.style.margin="0px 6px 6px 0px";if(null!=b){var m="1"==urlParams.sketch?"2px solid":"1px solid";null!=b.gradient?mxClient.IS_IE&&
+10>document.documentMode?c.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":c.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?c.style.background="url('"+Dialog.prototype.noColorImage+"')":c.style.backgroundColor=""==b.fill?mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff"):b.fill||mxUtils.getValue(d.defaultVertexStyle,
+mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff");c.style.border=b.stroke==mxConstants.NONE?m+" transparent":""==b.stroke?m+" "+mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor):m+" "+(b.stroke||mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor));null!=b.title&&c.setAttribute("title",b.title)}else{var m=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,
+"#ffffff"),g=mxUtils.getValue(d.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");c.style.backgroundColor=m;c.style.border="1px solid "+g}c.style.borderRadius="0";e.appendChild(c)});e.innerHTML="";for(var m=0;m<b.length;m++)0<m&&0==mxUtils.mod(m,4)&&mxUtils.br(e),c(b[m])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):q(this.format.currentScheme);var k=10>=this.defaultColorSchemes.length?28:8,n=document.createElement("div");n.style.cssText="position:absolute;left:10px;top:8px;bottom:"+
+k+"px;width:20px;margin:4px;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(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));
+var y=document.createElement("div");y.style.cssText="position:absolute;left:202px;top:8px;bottom:"+k+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";1<this.defaultColorSchemes.length&&
+(b.appendChild(n),b.appendChild(y));mxEvent.addListener(y,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));c(n);c(y);t(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(m);return b};StyleFormatPanel.prototype.addEditOps=function(b){var c=this.editorUi.getSelectionState(),f=this.editorUi.editor.graph,d=null;1==c.cells.length&&(d=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,
+function(b){this.editorUi.actions.get("editStyle").funct()})),d.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),d.style.width="210px",d.style.marginBottom="2px",b.appendChild(d));f=1==c.cells.length?f.view.getState(c.cells[0]):null;null!=f&&null!=f.shape&&null!=f.shape.stencil?(c=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editShape").funct()})),c.setAttribute("title",mxResources.get("editShape")),
+c.style.marginBottom="2px",null==d?c.style.width="210px":(d.style.width="104px",c.style.width="104px",c.style.marginLeft="2px"),b.appendChild(c)):c.image&&0<c.cells.length&&(c=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(b){this.editorUi.actions.get("image").funct()})),c.setAttribute("title",mxResources.get("editImage")),c.style.marginBottom="2px",null==d?c.style.width="210px":(d.style.width="104px",c.style.width="104px",c.style.marginLeft="2px"),b.appendChild(c));return b}}Graph.customFontElements=
+{};Graph.recentCustomFonts={};Graph.isGoogleFontUrl=function(b){return b.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS};Graph.isCssFontUrl=function(b){return Graph.isGoogleFontUrl(b)};Graph.createFontElement=function(b,c){var f;Graph.isCssFontUrl(c)?(f=document.createElement("link"),f.setAttribute("rel","stylesheet"),f.setAttribute("type","text/css"),f.setAttribute("charset","UTF-8"),f.setAttribute("href",c)):(f=document.createElement("style"),mxUtils.write(f,'@font-face {\nfont-family: "'+
+b+'";\nsrc: url("'+c+'");\n}'));return f};Graph.addFont=function(b,c,f){if(null!=b&&0<b.length&&null!=c&&0<c.length){var d=b.toLowerCase();if("helvetica"!=d&&"arial"!=b&&"sans-serif"!=d){var e=Graph.customFontElements[d];null!=e&&e.url!=c&&(e.elt.parentNode.removeChild(e.elt),e=null);null==e?(e=c,"http:"==c.substring(0,5)&&(e=PROXY_URL+"?url="+encodeURIComponent(c)),e={name:b,url:c,elt:Graph.createFontElement(b,e)},Graph.customFontElements[d]=e,Graph.recentCustomFonts[d]=e,c=document.getElementsByTagName("head")[0],
+null!=f&&("link"==e.elt.nodeName.toLowerCase()?(e.elt.onload=f,e.elt.onerror=f):f()),null!=c&&c.appendChild(e.elt)):null!=f&&f()}else null!=f&&f()}else null!=f&&f();return b};Graph.getFontUrl=function(b,c){var f=Graph.customFontElements[b.toLowerCase()];null!=f&&(c=f.url);return c};Graph.processFontAttributes=function(b){b=b.getElementsByTagName("*");for(var c=0;c<b.length;c++){var f=b[c].getAttribute("data-font-src");if(null!=f){var d="FONT"==b[c].nodeName?b[c].getAttribute("face"):b[c].style.fontFamily;
+null!=d&&Graph.addFont(d,f)}}};Graph.processFontStyle=function(b){if(null!=b){var c=mxUtils.getValue(b,"fontSource",null);if(null!=c){var f=mxUtils.getValue(b,mxConstants.STYLE_FONTFAMILY,null);null!=f&&Graph.addFont(f,decodeURIComponent(c))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";
+Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;Graph.prototype.defaultMathEnabled=!1;var x=Graph.prototype.init;Graph.prototype.init=function(){function b(b){c=b}x.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var c=null;mxEvent.addListener(this.container,"mouseenter",
+b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){c=null});this.isMouseInsertPoint=function(){return null!=c};var f=this.getInsertPoint;this.getInsertPoint=function(){return null!=c?this.getPointForEvent(c):f.apply(this,arguments)};var d=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var c=this.graph.getCellStyle(b);if(null!=c&&"rack"==c.childLayout){var f=new mxStackLayout(this.graph,!1);f.gridSize=null!=c.rackUnitSize?
+parseFloat(c.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;f.marginLeft=c.marginLeft||0;f.marginRight=c.marginRight||0;f.marginTop=c.marginTop||0;f.marginBottom=c.marginBottom||0;f.allowGaps=c.allowGaps||0;f.horizontal="1"==mxUtils.getValue(c,"horizontalRack","0");f.resizeParent=!1;f.fill=!0;return f}return d.apply(this,arguments)};this.updateGlobalUrlVariables()};var A=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b,c){return Graph.processFontStyle(A.apply(this,
+arguments))};var z=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,c,f,d,e,l,m,g,k,p,q){z.apply(this,arguments);Graph.processFontAttributes(q)};var B=mxText.prototype.redraw;mxText.prototype.redraw=function(){B.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,c,f){function d(){for(var b=m.getSelectionCells(),c=[],f=0;f<b.length;f++)m.isCellVisible(b[f])&&
+c.push(b[f]);m.setSelectionCells(c)}function e(b){m.hiddenTags=b?[]:g.slice();d();m.refresh()}function l(b,f){p.innerHTML="";if(0<b.length){var l=document.createElement("table");l.setAttribute("cellpadding","2");l.style.boxSizing="border-box";l.style.tableLayout="fixed";l.style.width="100%";var k=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var l=0>mxUtils.indexOf(m.hiddenTags,b),p=document.createElement("tr"),q=document.createElement("td");q.style.align=
+"center";q.style.width="16px";var t=document.createElement("img");t.setAttribute("src",l?Editor.visibleImage:Editor.hiddenImage);t.setAttribute("title",mxResources.get(l?"hideIt":"show",[b]));mxUtils.setOpacity(t,l?75:25);t.style.verticalAlign="middle";t.style.cursor="pointer";t.style.width="16px";if(c||Editor.isDarkMode())t.style.filter="invert(100%)";q.appendChild(t);mxEvent.addListener(t,"click",function(c){var f=mxUtils.indexOf(m.hiddenTags,b);mxEvent.isShiftDown(c)?e(0<=mxUtils.indexOf(m.hiddenTags,
+b)):(0>f?m.hiddenTags.push(b):0<=f&&m.hiddenTags.splice(f,1),d(),m.refresh());mxEvent.consume(c)});p.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,l?100:40);q.appendChild(a);mxEvent.addListener(q,"click",
+function(c){if(mxEvent.isShiftDown(c)){e(!0);var f=m.getCellsForTags([b],null,null,!0);m.isEnabled()?m.setSelectionCells(f):m.highlightCells(f)}else if(l&&0<m.hiddenTags.length)e(!0);else{var f=g.slice(),k=mxUtils.indexOf(f,b);f.splice(k,1);m.hiddenTags=f;d();m.refresh()}mxEvent.consume(c)});p.appendChild(q);if(m.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==f){q.style.align="center";q.style.width="16px";t=document.createElement("img");
+t.setAttribute("src",Editor.crossImage);t.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(t,l?75:25);t.style.verticalAlign="middle";t.style.cursor="pointer";t.style.width="16px";if(c||Editor.isDarkMode())t.style.filter="invert(100%)";mxEvent.addListener(t,"click",function(c){var f=mxUtils.indexOf(g,b);0<=f&&g.splice(f,1);m.removeTagsForCells(m.model.getDescendants(m.model.getRoot()),[b]);m.refresh();mxEvent.consume(c)});q.appendChild(t)}else{var n=document.createElement("input");
+n.setAttribute("type","checkbox");n.style.margin="0px";n.defaultChecked=null!=f&&0<=mxUtils.indexOf(f,b);n.checked=n.defaultChecked;n.style.background="transparent";n.setAttribute("title",mxResources.get(n.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(n,"change",function(c){n.checked?m.addTagsForCells(m.getSelectionCells(),[b]):m.removeTagsForCells(m.getSelectionCells(),[b]);mxEvent.consume(c)});q.appendChild(n)}p.appendChild(q)}k.appendChild(p)})(b[q]);l.appendChild(k);p.appendChild(l)}}
+var m=this,g=m.hiddenTags.slice(),k=document.createElement("div");k.style.userSelect="none";k.style.overflow="hidden";k.style.padding="10px";k.style.height="100%";var p=document.createElement("div");p.style.boxSizing="border-box";p.style.borderRadius="4px";p.style.userSelect="none";p.style.overflow="auto";p.style.position="absolute";p.style.left="10px";p.style.right="10px";p.style.top="10px";p.style.border=m.isEnabled()?"1px solid #808080":"none";p.style.bottom=m.isEnabled()?"48px":"10px";k.appendChild(p);
+var q=mxUtils.button(mxResources.get("reset"),function(b){m.hiddenTags=[];mxEvent.isShiftDown(b)||(g=m.hiddenTags.slice());d();m.refresh()});q.setAttribute("title",mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var t=mxUtils.button(mxResources.get("add"),function(){null!=f&&f(g,function(b){g=b;n()})});t.setAttribute("title",mxResources.get("add"));t.className="geBtn";t.style.margin="0";m.addListener(mxEvent.ROOT,function(){g=m.hiddenTags.slice()});var n=mxUtils.bind(this,
+function(c,f){if(b()){for(var d=m.getAllTags(),e=0;e<d.length;e++)0>mxUtils.indexOf(g,d[e])&&g.push(d[e]);g.sort();m.isSelectionEmpty()?l(g):l(g,m.getCommonTagsForCells(m.getSelectionCells()))}});m.selectionModel.addListener(mxEvent.CHANGE,n);m.model.addListener(mxEvent.CHANGE,n);m.addListener(mxEvent.REFRESH,n);var y=document.createElement("div");y.style.boxSizing="border-box";y.style.whiteSpace="nowrap";y.style.position="absolute";y.style.overflow="hidden";y.style.bottom="0px";y.style.height="42px";
+y.style.right="10px";y.style.left="10px";m.isEnabled()&&(y.appendChild(q),y.appendChild(t),k.appendChild(y));return{div:k,refresh:n}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,b=null!=b?b.slice():[],c;for(c in Graph.customFontElements){var f=Graph.customFontElements[c];b.push({name:f.name,url:f.url})}return b};Graph.prototype.setFont=function(b,c){Graph.addFont(b,c);document.execCommand("fontname",!1,b);if(null!=c){var f=this.cellEditor.textarea.getElementsByTagName("font");c=
+Graph.getFontUrl(b,c);for(var d=0;d<f.length;d++)f[d].getAttribute("face")==b&&f[d].getAttribute("data-font-src")!=c&&f[d].setAttribute("data-font-src",c)}};var y=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return y.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=
+JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var c in b)this.globalVars[c]=b[c]}catch(J){null!=window.console&&console.log("Error in vars URL parameter: "+J)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var C=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var c=C.apply(this,arguments);null==c&&null!=this.globalVars&&(c=this.globalVars[b]);return c};Graph.prototype.getDefaultStylesheet=
+function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var D=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,c,f,d,e,l,m,g,k,p,q,t,n,y){var u=null,v=null,B=null;t||null==this.themes||"darkTheme"!=this.defaultThemeName||(u=this.stylesheet,v=this.shapeForegroundColor,B=this.shapeBackgroundColor,this.shapeForegroundColor=
+"darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var A=D.apply(this,arguments),x=this.getCustomFonts();if(q&&0<x.length){var C=A.ownerDocument,F=null!=C.createElementNS?C.createElementNS(mxConstants.NS_SVG,"style"):C.createElement("style");null!=C.setAttributeNS?F.setAttributeNS("type","text/css"):F.setAttribute("type","text/css");for(var z=
+"",E="",M=0;M<x.length;M++){var I=x[M].name,K=x[M].url;Graph.isCssFontUrl(K)?z+="@import url("+K+");\n":E+='@font-face {\nfont-family: "'+I+'";\nsrc: url("'+K+'");\n}\n'}F.appendChild(C.createTextNode(z+E));A.getElementsByTagName("defs")[0].appendChild(F)}null!=u&&(this.shapeBackgroundColor=B,this.shapeForegroundColor=v,this.stylesheet=u,this.refresh());return A};var G=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=G.apply(this,arguments);if(this.mathEnabled){var c=
b.drawText;b.drawText=function(b,f){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var d=b.text.getContentNode();if(null!=d){d=d.cloneNode(!0);if(d.getElementsByTagNameNS)for(var e=d.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=d.innerHTML&&(e=b.text.value,b.text.value=d.innerHTML,c.apply(this,arguments),b.text.value=e)}}else c.apply(this,
-arguments)}}return b};var D=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){D.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||
-this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var E=Graph.prototype.refresh;Graph.prototype.refresh=function(){E.apply(this,
+arguments)}}return b};var E=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){E.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||
+this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var F=Graph.prototype.refresh;Graph.prototype.refresh=function(){F.apply(this,
arguments);this.refreshBackgroundImage()};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var H=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){H.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=
b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,c){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var f=!1,d=0,e=0,l=mxUtils.bind(this,function(){f||(f=!0,this.model.beginUpdate())}),m=mxUtils.bind(this,
function(){f&&(f=!1,this.model.endUpdate())}),g=mxUtils.bind(this,function(){0<d&&d--;0==d&&k()}),k=mxUtils.bind(this,function(){if(e<b.length){var f=this.stoppingCustomActions,p=b[e++],q=[];if(null!=p.open)if(m(),this.isCustomLink(p.open)){if(!this.customLinkClicked(p.open))return}else this.openLink(p.open);null==p.wait||f||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;g()}),d++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,
@@ -10715,30 +10718,30 @@ mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js
STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+
"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var c=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?c="mxgraph.er":"sysML"==b.substring(0,5)&&(c="mxgraph.sysml"));return c};var L=mxMarker.createMarker;mxMarker.createMarker=function(b,c,f,d,e,l,m,g,p,k){if(null!=f&&null==mxMarker.markers[f]){var q=this.getPackageForType(f);null!=q&&
mxStencilRegistry.getStencil(q)}return L.apply(this,arguments)};PrintDialog.prototype.create=function(b,c){function f(){y.value=Math.max(1,Math.min(g,Math.max(parseInt(y.value),parseInt(n.value))));n.value=Math.max(1,Math.min(g,Math.min(parseInt(y.value),parseInt(n.value))))}function d(c){function f(c,f,l){var m=c.useCssTransforms,g=c.currentTranslate,k=c.currentScale,p=c.view.translate,q=c.view.scale;c.useCssTransforms&&(c.useCssTransforms=!1,c.currentTranslate=new mxPoint(0,0),c.currentScale=1,
-c.view.translate=new mxPoint(0,0),c.view.scale=1);var t=c.getGraphBounds(),n=0,y=0,u=L.get(),v=1/c.pageScale,x=A.checked;if(x)var v=parseInt(H.value),C=parseInt(N.value),v=Math.min(u.height*C/(t.height/c.view.scale),u.width*v/(t.width/c.view.scale));else v=parseInt(B.value)/(100*c.pageScale),isNaN(v)&&(d=1/c.pageScale,B.value="100 %");u=mxRectangle.fromRectangle(u);u.width=Math.ceil(u.width*d);u.height=Math.ceil(u.height*d);v*=d;!x&&c.pageVisible?(t=c.getPageLayout(),n-=t.x*u.width,y-=t.y*u.height):
-x=!0;if(null==f){f=PrintDialog.createPrintPreview(c,v,u,0,n,y,x);f.pageSelector=!1;f.mathEnabled=!1;n=b.getCurrentFile();null!=n&&(f.title=n.getTitle());var E=f.writeHead;f.writeHead=function(f){E.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)f.writeln('<style type="text/css">'),f.writeln(Editor.mathJaxWebkitCss),f.writeln("</style>");mxClient.IS_GC&&(f.writeln('<style type="text/css">'),f.writeln("@media print {"),f.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),f.writeln("}"),
+c.view.translate=new mxPoint(0,0),c.view.scale=1);var t=c.getGraphBounds(),n=0,y=0,u=L.get(),v=1/c.pageScale,x=A.checked;if(x)var v=parseInt(N.value),C=parseInt(H.value),v=Math.min(u.height*C/(t.height/c.view.scale),u.width*v/(t.width/c.view.scale));else v=parseInt(B.value)/(100*c.pageScale),isNaN(v)&&(d=1/c.pageScale,B.value="100 %");u=mxRectangle.fromRectangle(u);u.width=Math.ceil(u.width*d);u.height=Math.ceil(u.height*d);v*=d;!x&&c.pageVisible?(t=c.getPageLayout(),n-=t.x*u.width,y-=t.y*u.height):
+x=!0;if(null==f){f=PrintDialog.createPrintPreview(c,v,u,0,n,y,x);f.pageSelector=!1;f.mathEnabled=!1;n=b.getCurrentFile();null!=n&&(f.title=n.getTitle());var F=f.writeHead;f.writeHead=function(f){F.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)f.writeln('<style type="text/css">'),f.writeln(Editor.mathJaxWebkitCss),f.writeln("</style>");mxClient.IS_GC&&(f.writeln('<style type="text/css">'),f.writeln("@media print {"),f.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),f.writeln("}"),
f.writeln("</style>"));null!=b.editor.fontCss&&(f.writeln('<style type="text/css">'),f.writeln(b.editor.fontCss),f.writeln("</style>"));for(var d=c.getCustomFonts(),e=0;e<d.length;e++){var l=d[e].name,m=d[e].url;Graph.isCssFontUrl(m)?f.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(m)+'" charset="UTF-8" type="text/css">'):(f.writeln('<style type="text/css">'),f.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(l)+'";\nsrc: url("'+mxUtils.htmlEntities(m)+'");\n}'),f.writeln("</style>"))}};
if("undefined"!==typeof MathJax){var z=f.renderPage;f.renderPage=function(c,f,d,e,l,m){var g=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var k=z.apply(this,arguments);mxClient.NO_FO=g;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:k.className="geDisableMathJax";return k}}n=null;y=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(n=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
e.refresh());f.open(null,null,l,!0);e.enableFlowAnimation=y;null!=n&&(e.stylesheet=n,e.refresh())}else{u=c.background;if(null==u||""==u||u==mxConstants.NONE)u="#ffffff";f.backgroundColor=u;f.autoOrigin=x;f.appendGraph(c,v,n,y,l,!0);l=c.getCustomFonts();if(null!=f.wnd)for(n=0;n<l.length;n++)y=l[n].name,x=l[n].url,Graph.isCssFontUrl(x)?f.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(x)+'" charset="UTF-8" type="text/css">'):(f.wnd.document.writeln('<style type="text/css">'),
-f.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(y)+'";\nsrc: url("'+mxUtils.htmlEntities(x)+'");\n}'),f.wnd.document.writeln("</style>"))}m&&(c.useCssTransforms=m,c.currentTranslate=g,c.currentScale=k,c.view.translate=p,c.view.scale=q);return f}var d=parseInt(J.value)/100;isNaN(d)&&(d=1,J.value="100 %");var d=.75*d,l=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(l=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var m=n.value,g=y.value,k=!q.checked,
-t=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,m,g,A.checked,H.value,N.value,parseInt(B.value)/100,parseInt(J.value)/100,L.get());else{k&&(k=m==p&&g==p);if(!k&&null!=b.pages&&b.pages.length){var u=0,k=b.pages.length-1;q.checked||(u=parseInt(m)-1,k=parseInt(g)-1);for(var v=u;v<=k;v++){var x=b.pages[v],m=x==b.currentPage?e:null;if(null==m){var m=b.createTemporaryGraph(e.stylesheet),g=!0,u=!1,C=null,E=null;null==x.viewState&&null==x.root&&b.updatePageRoot(x);null!=x.viewState&&
-(g=x.viewState.pageVisible,u=x.viewState.mathEnabled,C=x.viewState.background,E=x.viewState.backgroundImage,m.extFonts=x.viewState.extFonts);m.background=C;m.backgroundImage=null!=E?new mxImage(E.src,E.width,E.height):null;m.pageVisible=g;m.mathEnabled=u;var z=m.getGlobalVariable;m.getGlobalVariable=function(c){return"page"==c?x.getName():"pagenumber"==c?v+1:"pagecount"==c?null!=b.pages?b.pages.length:1:z.apply(this,arguments)};document.body.appendChild(m.container);b.updatePageRoot(x);m.model.setRoot(x.root)}t=
+f.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(y)+'";\nsrc: url("'+mxUtils.htmlEntities(x)+'");\n}'),f.wnd.document.writeln("</style>"))}m&&(c.useCssTransforms=m,c.currentTranslate=g,c.currentScale=k,c.view.translate=p,c.view.scale=q);return f}var d=parseInt(K.value)/100;isNaN(d)&&(d=1,K.value="100 %");var d=.75*d,l=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(l=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var m=n.value,g=y.value,k=!q.checked,
+t=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,m,g,A.checked,N.value,H.value,parseInt(B.value)/100,parseInt(K.value)/100,L.get());else{k&&(k=m==p&&g==p);if(!k&&null!=b.pages&&b.pages.length){var u=0,k=b.pages.length-1;q.checked||(u=parseInt(m)-1,k=parseInt(g)-1);for(var v=u;v<=k;v++){var x=b.pages[v],m=x==b.currentPage?e:null;if(null==m){var m=b.createTemporaryGraph(e.stylesheet),g=!0,u=!1,C=null,F=null;null==x.viewState&&null==x.root&&b.updatePageRoot(x);null!=x.viewState&&
+(g=x.viewState.pageVisible,u=x.viewState.mathEnabled,C=x.viewState.background,F=x.viewState.backgroundImage,m.extFonts=x.viewState.extFonts);m.background=C;m.backgroundImage=null!=F?new mxImage(F.src,F.width,F.height):null;m.pageVisible=g;m.mathEnabled=u;var z=m.getGlobalVariable;m.getGlobalVariable=function(c){return"page"==c?x.getName():"pagenumber"==c?v+1:"pagecount"==c?null!=b.pages?b.pages.length:1:z.apply(this,arguments)};document.body.appendChild(m.container);b.updatePageRoot(x);m.model.setRoot(x.root)}t=
f(m,t,v!=k);m!=e&&m.container.parentNode.removeChild(m.container)}}else t=f(e);null==t?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(t.mathEnabled&&(k=t.wnd.document,c&&(t.wnd.IMMEDIATE_PRINT=!0),k.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),t.closeDocument(),!t.mathEnabled&&c&&PrintDialog.printPreview(t));null!=l&&(e.stylesheet=l,e.refresh())}}var e=b.editor.graph,l=document.createElement("div"),m=document.createElement("h3");
m.style.width="100%";m.style.textAlign="center";m.style.marginTop="0px";mxUtils.write(m,c||mxResources.get("print"));l.appendChild(m);var g=1,p=1,k=document.createElement("div");k.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");k.appendChild(q);m=document.createElement("span");
mxUtils.write(m,mxResources.get("printAllPages"));k.appendChild(m);mxUtils.br(k);var t=q.cloneNode(!0);q.setAttribute("checked","checked");t.setAttribute("value","range");k.appendChild(t);m=document.createElement("span");mxUtils.write(m,mxResources.get("pages")+":");k.appendChild(m);var n=document.createElement("input");n.style.cssText="margin:0 8px 0 8px;";n.setAttribute("value","1");n.setAttribute("type","number");n.setAttribute("min","1");n.style.width="50px";k.appendChild(n);m=document.createElement("span");
mxUtils.write(m,mxResources.get("to"));k.appendChild(m);var y=n.cloneNode(!0);k.appendChild(y);mxEvent.addListener(n,"focus",function(){t.checked=!0});mxEvent.addListener(y,"focus",function(){t.checked=!0});mxEvent.addListener(n,"change",f);mxEvent.addListener(y,"change",f);if(null!=b.pages&&(g=b.pages.length,null!=b.currentPage))for(m=0;m<b.pages.length;m++)if(b.currentPage==b.pages[m]){p=m+1;n.value=p;y.value=p;break}n.setAttribute("max",g);y.setAttribute("max",g);b.isPagesEnabled()?1<g&&(l.appendChild(k),
t.checked=!0):t.checked=!0;var u=document.createElement("div");u.style.marginBottom="10px";var v=document.createElement("input");v.style.marginRight="8px";v.setAttribute("value","adjust");v.setAttribute("type","radio");v.setAttribute("name","printZoom");u.appendChild(v);m=document.createElement("span");mxUtils.write(m,mxResources.get("adjustTo"));u.appendChild(m);var B=document.createElement("input");B.style.cssText="margin:0 8px 0 8px;";B.setAttribute("value","100 %");B.style.width="50px";u.appendChild(B);
-mxEvent.addListener(B,"focus",function(){v.checked=!0});l.appendChild(u);var k=k.cloneNode(!1),A=v.cloneNode(!0);A.setAttribute("value","fit");v.setAttribute("checked","checked");m=document.createElement("div");m.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";m.appendChild(A);k.appendChild(m);u=document.createElement("table");u.style.display="inline-block";var x=document.createElement("tbody"),C=document.createElement("tr"),E=C.cloneNode(!0),z=document.createElement("td"),
-M=z.cloneNode(!0),D=z.cloneNode(!0),G=z.cloneNode(!0),I=z.cloneNode(!0),F=z.cloneNode(!0);z.style.textAlign="right";G.style.textAlign="right";mxUtils.write(z,mxResources.get("fitTo"));var H=document.createElement("input");H.style.cssText="margin:0 8px 0 8px;";H.setAttribute("value","1");H.setAttribute("min","1");H.setAttribute("type","number");H.style.width="40px";M.appendChild(H);m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsAcross"));D.appendChild(m);mxUtils.write(G,
-mxResources.get("fitToBy"));var N=H.cloneNode(!0);I.appendChild(N);mxEvent.addListener(H,"focus",function(){A.checked=!0});mxEvent.addListener(N,"focus",function(){A.checked=!0});m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsDown"));F.appendChild(m);C.appendChild(z);C.appendChild(M);C.appendChild(D);E.appendChild(G);E.appendChild(I);E.appendChild(F);x.appendChild(C);x.appendChild(E);u.appendChild(x);k.appendChild(u);l.appendChild(k);k=document.createElement("div");m=
-document.createElement("div");m.style.fontWeight="bold";m.style.marginBottom="12px";mxUtils.write(m,mxResources.get("paperSize"));k.appendChild(m);m=document.createElement("div");m.style.marginBottom="12px";var L=PageSetupDialog.addPageFormatPanel(m,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);k.appendChild(m);m=document.createElement("span");mxUtils.write(m,mxResources.get("pageScale"));k.appendChild(m);var J=document.createElement("input");J.style.cssText="margin:0 8px 0 8px;";
-J.setAttribute("value","100 %");J.style.width="60px";k.appendChild(J);l.appendChild(k);m=document.createElement("div");m.style.cssText="text-align:right;margin:48px 0 0 0;";k=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});k.className="geBtn";b.editor.cancelFirst&&m.appendChild(k);b.isOffline()||(u=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),u.className="geBtn",m.appendChild(u));PrintDialog.previewEnabled&&(u=
+mxEvent.addListener(B,"focus",function(){v.checked=!0});l.appendChild(u);var k=k.cloneNode(!1),A=v.cloneNode(!0);A.setAttribute("value","fit");v.setAttribute("checked","checked");m=document.createElement("div");m.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";m.appendChild(A);k.appendChild(m);u=document.createElement("table");u.style.display="inline-block";var x=document.createElement("tbody"),C=document.createElement("tr"),F=C.cloneNode(!0),z=document.createElement("td"),
+M=z.cloneNode(!0),E=z.cloneNode(!0),D=z.cloneNode(!0),I=z.cloneNode(!0),G=z.cloneNode(!0);z.style.textAlign="right";D.style.textAlign="right";mxUtils.write(z,mxResources.get("fitTo"));var N=document.createElement("input");N.style.cssText="margin:0 8px 0 8px;";N.setAttribute("value","1");N.setAttribute("min","1");N.setAttribute("type","number");N.style.width="40px";M.appendChild(N);m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsAcross"));E.appendChild(m);mxUtils.write(D,
+mxResources.get("fitToBy"));var H=N.cloneNode(!0);I.appendChild(H);mxEvent.addListener(N,"focus",function(){A.checked=!0});mxEvent.addListener(H,"focus",function(){A.checked=!0});m=document.createElement("span");mxUtils.write(m,mxResources.get("fitToSheetsDown"));G.appendChild(m);C.appendChild(z);C.appendChild(M);C.appendChild(E);F.appendChild(D);F.appendChild(I);F.appendChild(G);x.appendChild(C);x.appendChild(F);u.appendChild(x);k.appendChild(u);l.appendChild(k);k=document.createElement("div");m=
+document.createElement("div");m.style.fontWeight="bold";m.style.marginBottom="12px";mxUtils.write(m,mxResources.get("paperSize"));k.appendChild(m);m=document.createElement("div");m.style.marginBottom="12px";var L=PageSetupDialog.addPageFormatPanel(m,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);k.appendChild(m);m=document.createElement("span");mxUtils.write(m,mxResources.get("pageScale"));k.appendChild(m);var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";
+K.setAttribute("value","100 %");K.style.width="60px";k.appendChild(K);l.appendChild(k);m=document.createElement("div");m.style.cssText="text-align:right;margin:48px 0 0 0;";k=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});k.className="geBtn";b.editor.cancelFirst&&m.appendChild(k);b.isOffline()||(u=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),u.className="geBtn",m.appendChild(u));PrintDialog.previewEnabled&&(u=
mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();d(!1)}),u.className="geBtn",m.appendChild(u));u=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();d(!0)});u.className="geBtn gePrimaryBtn";m.appendChild(u);b.editor.cancelFirst||m.appendChild(k);l.appendChild(m);this.container=l};var M=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}null!=this.format&&(this.page.viewState.pageFormat=this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else M.apply(this,arguments),null!=this.mathEnabled&&
-this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var N=document.createElement("canvas"),O=new Image;O.onload=function(){try{N.getContext("2d").drawImage(O,0,0);var b=N.toDataURL("image/png");Editor.prototype.useCanvasForExport=
-null!=b&&6<b.length}catch(T){}};O.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(J){}})();
+this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var N=document.createElement("canvas"),P=new Image;P.onload=function(){try{N.getContext("2d").drawImage(P,0,0);var b=N.toDataURL("image/png");Editor.prototype.useCanvasForExport=
+null!=b&&6<b.length}catch(T){}};P.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(K){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,d,c){c.ui=b.ui;return d};b.afterDecode=function(b,d,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,d,c){c.ui=b.ui;return d};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="16.0.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=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,d,c){c.ui=b.ui;return d};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="16.0.3";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=
!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,
messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(b,c,d,e,g,k,n){k=null!=k?k:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
@@ -10788,7 +10791,7 @@ null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[d+1])),this.pages
[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var e=urlParams["layer-ids"].split(" ");b={};for(d=0;d<e.length;d++)b[e[d]]=!0;for(var g=this.editor.graph.getModel(),k=g.getChildren(g.root),d=0;d<k.length;d++){var n=k[d];g.setVisible(n,b[n.id]||!1)}}catch(x){}};EditorUi.prototype.getBaseFilename=function(b){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))c=c.substring(0,c.lastIndexOf("."));/(\.drawio)$/i.test(c)&&(c=c.substring(0,c.lastIndexOf(".")));!b&&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(b,c,d,e,g,k,n,v,x,A,z,B){try{e=null!=e?e:this.editor.graph.isSelectionEmpty();
var f=this.getBaseFilename(!g),l=f+("xml"==b||"pdf"==b&&z?".drawio":"")+"."+b;if("xml"==b){var m=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,e,g,null,null,null,c);this.saveData(l,b,m,"text/xml")}else if("html"==b)m=this.getHtml2(this.getFileData(!0),this.editor.graph,f),this.saveData(l,b,m,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?l=f+".png":"jpeg"==b&&(l=f+".jpg"),this.saveRequest(l,b,mxUtils.bind(this,function(c,
-f){try{var d=this.editor.graph.pageVisible;null!=k&&(this.editor.graph.pageVisible=k);var l=this.createDownloadRequest(c,b,e,f,n,g,v,x,A,z,B);this.editor.graph.pageVisible=d;return l}catch(O){this.handleError(O)}}));else{var p=null,t=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(l,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(p)}))});if("svg"==b){var q=this.editor.graph.background;
+f){try{var d=this.editor.graph.pageVisible;null!=k&&(this.editor.graph.pageVisible=k);var l=this.createDownloadRequest(c,b,e,f,n,g,v,x,A,z,B);this.editor.graph.pageVisible=d;return l}catch(P){this.handleError(P)}}));else{var p=null,t=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(l,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(p)}))});if("svg"==b){var q=this.editor.graph.background;
if(n||q==mxConstants.NONE)q=null;var u=this.editor.graph.getSvg(q,null,null,null,null,e);d&&this.editor.graph.addSvgShadow(u);this.editor.convertImages(u,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();t(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else l=f+".svg",p=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();t(b)}),e)}}catch(I){this.handleError(I)}};EditorUi.prototype.createDownloadRequest=function(b,c,d,e,g,k,n,v,x,
A,z){var f=this.editor.graph,l=f.getGraphBounds();d=this.getFileData(!0,null,null,null,d,0==k?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var m="",p="";if(l.width*l.height>MAX_AREA||d.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};A=A?"1":"0";"pdf"==c&&(null!=z?p="&from="+z.from+"&to="+z.to:0==k&&(p="&allPages=1"));if("xmlpng"==c&&(A="1",c="png",null!=this.pages&&null!=this.currentPage))for(k=0;k<this.pages.length;k++)if(this.pages[k]==this.currentPage){m="&from="+k;break}k=
f.background;"png"!=c&&"pdf"!=c||!g?g||null!=k&&k!=mxConstants.NONE||(k="#ffffff"):k=mxConstants.NONE;g={globalVars:f.getExportVariables()};x&&(g.grid={size:f.gridSize,steps:f.view.gridSteps,color:f.view.gridColor});Graph.translateDiagram&&(g.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+m+p+"&bg="+(null!=k?k:mxConstants.NONE)+"&base64="+e+"&embedXml="+A+"&xml="+encodeURIComponent(d)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(g))+
@@ -10796,8 +10799,8 @@ f.background;"png"!=c&&"pdf"!=c||!g?g||null!=k&&k!=mxConstants.NONE||(k="#ffffff
b.format&&this.importCsv(e,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var l=null!=b.interval?parseInt(b.interval):6E4,m=null,g=mxUtils.bind(this,function(){var c=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){c===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),k()):this.handleError({message:mxResources.get("error")+
" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),k=mxUtils.bind(this,function(){window.clearTimeout(m);m=window.setTimeout(g,l)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){k();g()}));k();g()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){e(b)}),mxUtils.bind(this,function(b){null!=d&&d(b)})):e("")};EditorUi.prototype.updateDiagram=function(b){function c(b){var c=new mxCellOverlay(b.image||e.warningImage,
b.tooltip,b.align,b.valign,b.offset);c.addListener(mxEvent.CLICK,function(c,f){d.alert(b.tooltip)});return c}var f=null,d=this;if(null!=b&&0<b.length&&(f=mxUtils.parseXml(b),b=null!=f?f.documentElement:null,null!=b&&"updates"==b.nodeName)){var e=this.editor.graph,g=e.getModel();g.beginUpdate();var k=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var n=g.getCell(b.getAttribute("id"));if(null!=n){try{var x=b.getAttribute("value");if(null!=x){var A=mxUtils.parseXml(x).documentElement;
-if(null!=A)if("1"==A.getAttribute("replace-value"))g.setValue(n,A);else for(var z=A.attributes,B=0;B<z.length;B++)e.setAttributeForCell(n,z[B].nodeName,0<z[B].nodeValue.length?z[B].nodeValue:null)}}catch(I){null!=window.console&&console.log("Error in value for "+n.id+": "+I)}try{var y=b.getAttribute("style");null!=y&&e.model.setStyle(n,y)}catch(I){null!=window.console&&console.log("Error in style for "+n.id+": "+I)}try{var C=b.getAttribute("icon");if(null!=C){var G=0<C.length?JSON.parse(C):null;null!=
-G&&G.append||e.removeCellOverlays(n);null!=G&&e.addCellOverlay(n,c(G))}}catch(I){null!=window.console&&console.log("Error in icon for "+n.id+": "+I)}try{var F=b.getAttribute("geometry");if(null!=F){var F=JSON.parse(F),D=e.getCellGeometry(n);if(null!=D){D=D.clone();for(key in F){var E=parseFloat(F[key]);"dx"==key?D.x+=E:"dy"==key?D.y+=E:"dw"==key?D.width+=E:"dh"==key?D.height+=E:D[key]=parseFloat(F[key])}e.model.setGeometry(n,D)}}}catch(I){null!=window.console&&console.log("Error in icon for "+n.id+
+if(null!=A)if("1"==A.getAttribute("replace-value"))g.setValue(n,A);else for(var z=A.attributes,B=0;B<z.length;B++)e.setAttributeForCell(n,z[B].nodeName,0<z[B].nodeValue.length?z[B].nodeValue:null)}}catch(I){null!=window.console&&console.log("Error in value for "+n.id+": "+I)}try{var y=b.getAttribute("style");null!=y&&e.model.setStyle(n,y)}catch(I){null!=window.console&&console.log("Error in style for "+n.id+": "+I)}try{var C=b.getAttribute("icon");if(null!=C){var D=0<C.length?JSON.parse(C):null;null!=
+D&&D.append||e.removeCellOverlays(n);null!=D&&e.addCellOverlay(n,c(D))}}catch(I){null!=window.console&&console.log("Error in icon for "+n.id+": "+I)}try{var G=b.getAttribute("geometry");if(null!=G){var G=JSON.parse(G),E=e.getCellGeometry(n);if(null!=E){E=E.clone();for(key in G){var F=parseFloat(G[key]);"dx"==key?E.x+=F:"dy"==key?E.y+=F:"dw"==key?E.width+=F:"dh"==key?E.height+=F:E[key]=parseFloat(G[key])}e.model.setGeometry(n,E)}}}catch(I){null!=window.console&&console.log("Error in icon for "+n.id+
": "+I)}}}else if("model"==b.nodeName){for(var H=b.firstChild;null!=H&&H.nodeType!=mxConstants.NODETYPE_ELEMENT;)H=H.nextSibling;null!=H&&(new mxCodec(b.firstChild)).decode(H,g)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(e.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))e.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(k=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):
1);b=b.nextSibling}}finally{g.endUpdate()}null!=k&&this.chromelessResize&&this.chromelessResize(!0,k)}return f};EditorUi.prototype.getCopyFilename=function(b,c){var f=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,d="",e=f.lastIndexOf(".");0<=e&&(d=f.substring(e),f=f.substring(0,e));if(c)var l=new Date,e=l.getFullYear(),g=l.getMonth()+1,k=l.getDate(),n=l.getHours(),A=l.getMinutes(),l=l.getSeconds(),f=f+(" "+(e+"-"+g+"-"+k+"-"+n+"-"+A+"-"+l));return f=mxResources.get("copyOf",[f])+d};
EditorUi.prototype.fileLoaded=function(b,c){var f=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var d=!1;this.hideDialog();null!=f&&(EditorUi.debug("File.closed",[f]),f.removeListener(this.descriptorChangedListener),f.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var e=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=f&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();
@@ -10816,18 +10819,18 @@ function(b,c){var f=mxUtils.parseXml(b.getData());if("mxlibrary"==f.documentElem
(this.scratchpad=b);var f=this.sidebar.palettes[b.getHash()],f=null!=f?f[f.length-1].nextSibling:null;this.removeLibrarySidebar(b.getHash());var l=null,m=mxUtils.bind(this,function(c,f){0==c.length&&b.isEditable()?(null==l&&(l=document.createElement("div"),l.className="geDropTarget",mxUtils.write(l,mxResources.get("dragElementsHere"))),f.appendChild(l)):this.addLibraryEntries(c,f)});null!=this.sidebar&&null!=c&&this.sidebar.addEntries(c);null==d&&(d=b.getTitle(),null!=d&&/(\.xml)$/i.test(d)&&(d=d.substring(0,
d.lastIndexOf("."))));var g=this.sidebar.addPalette(b.getHash(),d,null!=e?e:!0,mxUtils.bind(this,function(b){m(c,b)}));this.repositionLibrary(f);var k=g.parentNode.previousSibling;e=k.getAttribute("title");null!=e&&0<e.length&&".scratchpad"!=b.title&&k.setAttribute("title",this.getLibraryStorageHint(b)+"\n"+e);var p=document.createElement("div");p.style.position="absolute";p.style.right="0px";p.style.top="0px";p.style.padding="8px";p.style.backgroundColor="inherit";k.style.position="relative";var n=
document.createElement("img");n.setAttribute("src",Editor.crossImage);n.setAttribute("title",mxResources.get("close"));n.setAttribute("valign","absmiddle");n.setAttribute("border","0");n.style.position="relative";n.style.top="2px";n.style.width="14px";n.style.cursor="pointer";n.style.margin="0 3px";Editor.isDarkMode()&&(n.style.filter="invert(100%)");var B=null;if(".scratchpad"!=b.title||this.closableScratchpad)p.appendChild(n),mxEvent.addListener(n,"click",mxUtils.bind(this,function(c){if(!mxEvent.isConsumed(c)){var f=
-mxUtils.bind(this,function(){this.closeLibrary(b)});null!=B?this.confirm(mxResources.get("allChangesLost"),null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):f();mxEvent.consume(c)}}));if(b.isEditable()){var y=this.editor.graph,C=null,G=mxUtils.bind(this,function(f){this.showLibraryDialog(b.getTitle(),g,c,b,b.getMode());mxEvent.consume(f)}),F=mxUtils.bind(this,function(f){b.setModified(!0);b.isAutosave()?(null!=C&&null!=C.parentNode&&C.parentNode.removeChild(C),C=n.cloneNode(!1),
+mxUtils.bind(this,function(){this.closeLibrary(b)});null!=B?this.confirm(mxResources.get("allChangesLost"),null,f,mxResources.get("cancel"),mxResources.get("discardChanges")):f();mxEvent.consume(c)}}));if(b.isEditable()){var y=this.editor.graph,C=null,D=mxUtils.bind(this,function(f){this.showLibraryDialog(b.getTitle(),g,c,b,b.getMode());mxEvent.consume(f)}),G=mxUtils.bind(this,function(f){b.setModified(!0);b.isAutosave()?(null!=C&&null!=C.parentNode&&C.parentNode.removeChild(C),C=n.cloneNode(!1),
C.setAttribute("src",Editor.spinImage),C.setAttribute("title",mxResources.get("saving")),C.style.cursor="default",C.style.marginRight="2px",C.style.marginTop="-2px",p.insertBefore(C,p.firstChild),k.style.paddingRight=18*p.childNodes.length+"px",this.saveLibrary(b.getTitle(),c,b,b.getMode(),!0,!0,function(){null!=C&&null!=C.parentNode&&(C.parentNode.removeChild(C),k.style.paddingRight=18*p.childNodes.length+"px")})):null==B&&(B=n.cloneNode(!1),B.setAttribute("src",Editor.saveImage),B.setAttribute("title",
-mxResources.get("save")),p.insertBefore(B,p.firstChild),mxEvent.addListener(B,"click",mxUtils.bind(this,function(f){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==B||b.isModified()||(k.style.paddingRight=18*p.childNodes.length+"px",B.parentNode.removeChild(B),B=null)});mxEvent.consume(f)})),k.style.paddingRight=18*p.childNodes.length+"px")}),D=mxUtils.bind(this,function(b,f,d,e){b=y.cloneCells(mxUtils.sortCells(y.model.getTopmostCells(b)));for(var m=
-0;m<b.length;m++){var k=y.getCellGeometry(b[m]);null!=k&&k.translate(-f.x,-f.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,f.width,f.height,e||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),w:f.width,h:f.height};null!=e&&(b.title=e);c.push(b);F(d);null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null)}),E=mxUtils.bind(this,function(b){if(y.isSelectionEmpty())y.getRubberband().isActive()?(y.getRubberband().execute(b),y.getRubberband().reset()):
-this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=y.getSelectionCells(),f=y.view.getBounds(c),d=y.view.scale;f.x/=d;f.y/=d;f.width/=d;f.height/=d;f.x-=y.view.translate.x;f.y-=y.view.translate.y;D(c,f)}mxEvent.consume(b)});mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(b){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler.first&&(y.graphHandler.suspend(),null!=y.graphHandler.hint&&(y.graphHandler.hint.style.visibility=
-"hidden"),g.style.backgroundColor="#f1f3f4",g.style.cursor="copy",y.panningManager.stop(),y.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler&&(g.style.backgroundColor="",g.style.cursor="default",this.sidebar.showTooltips=!0,y.panningManager.stop(),y.graphHandler.reset(),y.isMouseDown=!1,y.autoScroll=!0,E(b),mxEvent.consume(b))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(b){y.isMouseDown&&null!=y.graphHandler.first&&
+mxResources.get("save")),p.insertBefore(B,p.firstChild),mxEvent.addListener(B,"click",mxUtils.bind(this,function(f){this.saveLibrary(b.getTitle(),c,b,b.getMode(),b.constructor==LocalLibrary,!0,function(){null==B||b.isModified()||(k.style.paddingRight=18*p.childNodes.length+"px",B.parentNode.removeChild(B),B=null)});mxEvent.consume(f)})),k.style.paddingRight=18*p.childNodes.length+"px")}),E=mxUtils.bind(this,function(b,f,d,e){b=y.cloneCells(mxUtils.sortCells(y.model.getTopmostCells(b)));for(var m=
+0;m<b.length;m++){var k=y.getCellGeometry(b[m]);null!=k&&k.translate(-f.x,-f.y)}g.appendChild(this.sidebar.createVertexTemplateFromCells(b,f.width,f.height,e||"",!0,!1,!1));b={xml:Graph.compress(mxUtils.getXml(this.editor.graph.encodeCells(b))),w:f.width,h:f.height};null!=e&&(b.title=e);c.push(b);G(d);null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null)}),F=mxUtils.bind(this,function(b){if(y.isSelectionEmpty())y.getRubberband().isActive()?(y.getRubberband().execute(b),y.getRubberband().reset()):
+this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var c=y.getSelectionCells(),f=y.view.getBounds(c),d=y.view.scale;f.x/=d;f.y/=d;f.width/=d;f.height/=d;f.x-=y.view.translate.x;f.y-=y.view.translate.y;E(c,f)}mxEvent.consume(b)});mxEvent.addGestureListeners(g,function(){},mxUtils.bind(this,function(b){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler.first&&(y.graphHandler.suspend(),null!=y.graphHandler.hint&&(y.graphHandler.hint.style.visibility=
+"hidden"),g.style.backgroundColor="#f1f3f4",g.style.cursor="copy",y.panningManager.stop(),y.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){y.isMouseDown&&null!=y.panningManager&&null!=y.graphHandler&&(g.style.backgroundColor="",g.style.cursor="default",this.sidebar.showTooltips=!0,y.panningManager.stop(),y.graphHandler.reset(),y.isMouseDown=!1,y.autoScroll=!0,F(b),mxEvent.consume(b))}));mxEvent.addListener(g,"mouseleave",mxUtils.bind(this,function(b){y.isMouseDown&&null!=y.graphHandler.first&&
(y.graphHandler.resume(),null!=y.graphHandler.hint&&(y.graphHandler.hint.style.visibility="visible"),g.style.backgroundColor="",g.style.cursor="",y.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(g,"dragover",mxUtils.bind(this,function(b){g.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";g.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"drop",mxUtils.bind(this,function(b){g.style.cursor="";g.style.backgroundColor=
-"";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(f,d,e,k,p,n,q,t,y){if(null!=f&&"image/"==d.substring(0,6))f="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(f),f=[new mxCell("",new mxGeometry(0,0,p,n),f)],f[0].vertex=!0,D(f,new mxRectangle(0,0,p,n),b,mxEvent.isAltDown(b)?null:q.substring(0,q.lastIndexOf(".")).replace(/_/g," ")),null!=l&&null!=l.parentNode&&0<c.length&&
-(l.parentNode.removeChild(l),l=null);else{var u=!1,v=mxUtils.bind(this,function(f,d){if(null!=f&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(f);null!=e&&0<e.length&&(f=e)}if(null!=f)if(e=mxUtils.parseXml(f),"mxlibrary"==e.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(e.documentElement));m(k,g);c=c.concat(k);F(b);this.spinner.stop();u=!0}catch(ca){}else if("mxfile"==e.documentElement.nodeName)try{for(var p=e.documentElement.getElementsByTagName("diagram"),k=0;k<
-p.length;k++){var n=this.stringToCells(Editor.getDiagramNodeXml(p[k])),q=this.editor.graph.getBoundingBoxFromGeometry(n);D(n,new mxRectangle(0,0,q.width,q.height),b)}u=!0}catch(ca){null!=window.console&&console.log("error in drop handler:",ca)}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null)});null!=y&&null!=q&&(/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q))?this.importVisio(y,
+"";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(f,d,e,k,p,n,q,t,y){if(null!=f&&"image/"==d.substring(0,6))f="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(f),f=[new mxCell("",new mxGeometry(0,0,p,n),f)],f[0].vertex=!0,E(f,new mxRectangle(0,0,p,n),b,mxEvent.isAltDown(b)?null:q.substring(0,q.lastIndexOf(".")).replace(/_/g," ")),null!=l&&null!=l.parentNode&&0<c.length&&
+(l.parentNode.removeChild(l),l=null);else{var u=!1,v=mxUtils.bind(this,function(f,d){if(null!=f&&"application/pdf"==d){var e=Editor.extractGraphModelFromPdf(f);null!=e&&0<e.length&&(f=e)}if(null!=f)if(e=mxUtils.parseXml(f),"mxlibrary"==e.documentElement.nodeName)try{var k=JSON.parse(mxUtils.getTextContent(e.documentElement));m(k,g);c=c.concat(k);G(b);this.spinner.stop();u=!0}catch(ca){}else if("mxfile"==e.documentElement.nodeName)try{for(var p=e.documentElement.getElementsByTagName("diagram"),k=0;k<
+p.length;k++){var n=this.stringToCells(Editor.getDiagramNodeXml(p[k])),q=this.editor.graph.getBoundingBoxFromGeometry(n);E(n,new mxRectangle(0,0,q.width,q.height),b)}u=!0}catch(ca){null!=window.console&&console.log("error in drop handler:",ca)}u||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=l&&null!=l.parentNode&&0<c.length&&(l.parentNode.removeChild(l),l=null)});null!=y&&null!=q&&(/(\.v(dx|sdx?))($|\?)/i.test(q)||/(\.vs(x|sx?))($|\?)/i.test(q))?this.importVisio(y,
function(b){v(b,"text/xml")},null,q):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(f,q)&&null!=y?this.parseFile(y,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?v(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):v(f,d)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(g,"dragleave",function(b){g.style.cursor=
-"";g.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));n=n.cloneNode(!1);n.setAttribute("src",Editor.editImage);n.setAttribute("title",mxResources.get("edit"));p.insertBefore(n,p.firstChild);mxEvent.addListener(n,"click",G);mxEvent.addListener(g,"dblclick",function(b){mxEvent.getSource(b)==g&&G(b)});e=n.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));p.insertBefore(e,p.firstChild);mxEvent.addListener(e,"click",E);this.isOffline()||
+"";g.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));n=n.cloneNode(!1);n.setAttribute("src",Editor.editImage);n.setAttribute("title",mxResources.get("edit"));p.insertBefore(n,p.firstChild);mxEvent.addListener(n,"click",D);mxEvent.addListener(g,"dblclick",function(b){mxEvent.getSource(b)==g&&D(b)});e=n.cloneNode(!1);e.setAttribute("src",Editor.plusImage);e.setAttribute("title",mxResources.get("add"));p.insertBefore(e,p.firstChild);mxEvent.addListener(e,"click",F);this.isOffline()||
".scratchpad"!=b.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;cursor:pointer;",mxUtils.write(e,"?"),mxEvent.addGestureListeners(e,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),p.insertBefore(e,p.firstChild))}k.appendChild(p);k.style.paddingRight=18*p.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=
function(b,c){for(var f=0;f<b.length;f++){var d=b[f],e=d.data;if(null!=e){var e=this.convertDataUri(e),l="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==d.aspect&&(l+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(l+"image="+e,d.w,d.h,"",d.title||"",!1,!1,!0))}else null!=d.xml&&(e=this.stringToCells(Graph.decompress(d.xml)),0<e.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(e,d.w,d.h,d.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=
function(b){return null!=b?b[mxLanguage]||b.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=
@@ -10858,7 +10861,7 @@ f.textarea.style.height="380px";this.showDialog(f.container,620,460,!0,!0,null,n
k=65==(l?parseInt(l[2],10):!1)?!1:k}if(k||this.isOffline()){f.href=URL.createObjectURL(e?this.base64ToBlob(b,d):new Blob([b],{type:d}));k?f.download=c:f.setAttribute("target","_blank");document.body.appendChild(f);try{window.setTimeout(function(){URL.revokeObjectURL(f.href)},2E4),f.click(),f.parentNode.removeChild(f)}catch(x){}}else this.createEchoRequest(b,c,d,e,g).simulate(document,"_blank")}};EditorUi.prototype.createEchoRequest=function(b,c,d,e,g,k){b="xml="+encodeURIComponent(b);return new mxXmlRequest(SAVE_URL,
b+(null!=d?"&mime="+d:"")+(null!=g?"&format="+g:"")+(null!=k?"&base64="+k:"")+(null!=c?"&filename="+encodeURIComponent(c):"")+(e?"&binary=1":""))};EditorUi.prototype.base64ToBlob=function(b,c){c=c||"";for(var f=atob(b),d=f.length,e=Math.ceil(d/1024),l=Array(e),g=0;g<e;++g){for(var k=1024*g,n=Math.min(k+1024,d),A=Array(n-k),z=0;k<n;++z,++k)A[z]=f[k].charCodeAt(0);l[g]=new Uint8Array(A)}return new Blob(l,{type:c})};EditorUi.prototype.saveLocalFile=function(b,c,d,e,g,k,n,v){k=null!=k?k:!1;n=null!=n?
n:"vsdx"!=g&&(!mxClient.IS_IOS||!navigator.standalone);g=this.getServiceCount(k);isLocalStorage&&g++;var f=4>=g?2:6<g?4:3;c=new CreateDialog(this,c,mxUtils.bind(this,function(c,f){try{if("_blank"==f)if(null!=d&&"image/"==d.substring(0,6))this.openInNewWindow(b,d,e);else if(null!=d&&"text/html"==d.substring(0,9)){var l=new EmbedDialog(this,b);this.showDialog(l.container,450,240,!0,!0);l.init()}else{var g=window.open("about:blank");null==g?mxUtils.popup(b,!0):(g.document.write("<pre>"+mxUtils.htmlEntities(b,
-!1)+"</pre>"),g.document.close())}else f==App.MODE_DEVICE||"download"==f?this.doSaveLocalFile(b,c,d,e,null,v):null!=c&&0<c.length&&this.pickFolder(f,mxUtils.bind(this,function(l){try{this.exportFile(b,c,d,e,f,l)}catch(G){this.handleError(G)}}))}catch(C){this.handleError(C)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,k,n,null,1<g,f,b,d,e);k=this.isServices(g)?g>f?390:270:160;this.showDialog(c.container,420,k,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
+!1)+"</pre>"),g.document.close())}else f==App.MODE_DEVICE||"download"==f?this.doSaveLocalFile(b,c,d,e,null,v):null!=c&&0<c.length&&this.pickFolder(f,mxUtils.bind(this,function(l){try{this.exportFile(b,c,d,e,f,l)}catch(D){this.handleError(D)}}))}catch(C){this.handleError(C)}}),mxUtils.bind(this,function(){this.hideDialog()}),mxResources.get("saveAs"),mxResources.get("download"),!1,k,n,null,1<g,f,b,d,e);k=this.isServices(g)?g>f?390:270:160;this.showDialog(c.container,420,k,!0,!0);c.init()};EditorUi.prototype.openInNewWindow=
function(b,c,d){var f=window.open("about:blank");null==f||null==f.document?mxUtils.popup(b,!0):("image/svg+xml"!=c||mxClient.IS_SVG?"image/svg+xml"==c?f.document.write("<html>"+b+"</html>"):(b=d?b:btoa(unescape(encodeURIComponent(b))),f.document.write('<html><img style="max-width:100%;" src="data:'+c+";base64,"+b+'"/></html>')):f.document.write("<html><pre>"+mxUtils.htmlEntities(b,!1)+"</pre></html>"),f.document.close())};var c=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(b){if(null!=urlParams.tags){this.tagsDialog=this.tagsComponent=null;var f=b(mxUtils.bind(this,function(b){null==this.tagsComponent&&(this.tagsComponent=this.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return null!=this.tagsDialog}),!0),this.tagsComponent.div.getElementsByTagName("div")[0].style.position=
"",mxUtils.setPrefixedStyle(this.tagsComponent.div.style,"borderRadius","5px"),this.tagsComponent.div.className="geScrollable",this.tagsComponent.div.style.maxHeight="160px",this.tagsComponent.div.style.maxWidth="120px",this.tagsComponent.div.style.padding="4px",this.tagsComponent.div.style.overflow="auto",this.tagsComponent.div.style.height="auto",this.tagsComponent.div.style.position="fixed",this.tagsComponent.div.style.fontFamily=Editor.defaultHtmlFont,mxClient.IS_IE||mxClient.IS_IE11?(this.tagsComponent.div.style.backgroundColor=
@@ -10892,29 +10895,29 @@ e&&(f.target=e);A||(f.lightbox=!1);f.nav=this.editor.graph.foldingEnabled;d=pars
'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,d,e){var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=document.createElement("h3");mxUtils.write(l,mxResources.get("html"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(l);var g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var m=document.createElement("input");m.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";
m.setAttribute("value","url");m.setAttribute("type","radio");m.setAttribute("name","type-embedhtmldialog");l=m.cloneNode(!0);l.setAttribute("value","copy");g.appendChild(l);var k=document.createElement("span");mxUtils.write(k,mxResources.get("includeCopyOfMyDiagram"));g.appendChild(k);mxUtils.br(g);g.appendChild(m);k=document.createElement("span");mxUtils.write(k,mxResources.get("publicDiagramUrl"));g.appendChild(k);var p=this.getCurrentFile();null==d&&null!=p&&p.constructor==window.DriveFile&&(k=
document.createElement("a"),k.style.paddingLeft="12px",k.style.color="gray",k.style.cursor="pointer",mxUtils.write(k,mxResources.get("share")),g.appendChild(k),mxEvent.addListener(k,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(p.getId())})));l.setAttribute("checked","checked");null==d&&m.setAttribute("disabled","disabled");f.appendChild(g);var n=this.addLinkSection(f),B=this.addCheckbox(f,mxResources.get("zoom"),!0,null,!0);mxUtils.write(f,":");var y=document.createElement("input");
-y.setAttribute("type","text");y.style.marginRight="16px";y.style.width="60px";y.style.marginLeft="4px";y.style.marginRight="12px";y.value="100%";f.appendChild(y);var C=this.addCheckbox(f,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,G=G=this.addCheckbox(f,mxResources.get("allPages"),g,!g),F=this.addCheckbox(f,mxResources.get("layers"),!0),D=this.addCheckbox(f,mxResources.get("tags"),!0),E=this.addCheckbox(f,mxResources.get("lightbox"),!0),H=this.addEditButton(f,E),I=H.getEditInput();
-I.style.marginBottom="16px";mxEvent.addListener(E,"change",function(){E.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled");I.checked&&E.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(m.checked?d:null,B.checked,y.value,n.getTarget(),n.getColor(),C.checked,G.checked,F.checked,D.checked,E.checked,H.getLink())}),null,b,c);this.showDialog(b.container,340,430,
+y.setAttribute("type","text");y.style.marginRight="16px";y.style.width="60px";y.style.marginLeft="4px";y.style.marginRight="12px";y.value="100%";f.appendChild(y);var C=this.addCheckbox(f,mxResources.get("fit"),!0),g=null!=this.pages&&1<this.pages.length,D=D=this.addCheckbox(f,mxResources.get("allPages"),g,!g),G=this.addCheckbox(f,mxResources.get("layers"),!0),E=this.addCheckbox(f,mxResources.get("tags"),!0),F=this.addCheckbox(f,mxResources.get("lightbox"),!0),H=this.addEditButton(f,F),I=H.getEditInput();
+I.style.marginBottom="16px";mxEvent.addListener(F,"change",function(){F.checked?I.removeAttribute("disabled"):I.setAttribute("disabled","disabled");I.checked&&F.checked?H.getEditSelect().removeAttribute("disabled"):H.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,f,mxUtils.bind(this,function(){e(m.checked?d:null,B.checked,y.value,n.getTarget(),n.getColor(),C.checked,D.checked,G.checked,E.checked,F.checked,H.getLink())}),null,b,c);this.showDialog(b.container,340,430,
!0,!0);l.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,d,e,g,k,n,v){var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=document.createElement("h3");mxUtils.write(l,b||mxResources.get("link"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";f.appendChild(l);var m=this.getCurrentFile();b=0;if(null==m||m.constructor!=window.DriveFile||c)n=null!=n?n:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;n=null!=n?n:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";
l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var p=document.createElement("div");p.style.whiteSpace="normal";mxUtils.write(p,mxResources.get("linkAccountRequired"));l.appendChild(p);p=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(m.getId())}));p.style.marginTop="12px";p.className="geBtn";l.appendChild(p);f.appendChild(l);p=document.createElement("a");
p.style.paddingLeft="12px";p.style.color="gray";p.style.fontSize="11px";p.style.cursor="pointer";mxUtils.write(p,mxResources.get("check"));l.appendChild(p);mxEvent.addListener(p,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,
300,80,!0,!1);b.init()}))}))}var q=null,t=null;if(null!=d||null!=e)b+=30,mxUtils.write(f,mxResources.get("width")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",f.appendChild(q),mxUtils.write(f,mxResources.get("height")+":"),t=document.createElement("input"),t.setAttribute("type","text"),t.style.width="50px",t.style.marginLeft="6px",t.style.marginBottom=
-"10px",t.value=e+"px",f.appendChild(t),mxUtils.br(f);var u=this.addLinkSection(f,k);d=null!=this.pages&&1<this.pages.length;var F=null;if(null==m||m.constructor!=window.DriveFile||c)F=this.addCheckbox(f,mxResources.get("allPages"),d,!d);var D=this.addCheckbox(f,mxResources.get("lightbox"),!0,null,null,!k),E=this.addEditButton(f,D),H=E.getEditInput();k&&(H.style.marginLeft=D.style.marginLeft,D.style.display="none",b-=20);var I=this.addCheckbox(f,mxResources.get("layers"),!0);I.style.marginLeft=H.style.marginLeft;
-I.style.marginTop="8px";var L=this.addCheckbox(f,mxResources.get("tags"),!0);L.style.marginLeft=H.style.marginLeft;L.style.marginBottom="16px";L.style.marginTop="16px";mxEvent.addListener(D,"change",function(){D.checked?(I.removeAttribute("disabled"),H.removeAttribute("disabled")):(I.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"));H.checked&&D.checked?E.getEditSelect().removeAttribute("disabled"):E.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,
-f,mxUtils.bind(this,function(){g(u.getTarget(),u.getColor(),null==F?!0:F.checked,D.checked,E.getLink(),I.checked,null!=q?q.value:null,null!=t?t.value:null,L.checked)}),null,mxResources.get("create"),n,v);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace=
+"10px",t.value=e+"px",f.appendChild(t),mxUtils.br(f);var u=this.addLinkSection(f,k);d=null!=this.pages&&1<this.pages.length;var G=null;if(null==m||m.constructor!=window.DriveFile||c)G=this.addCheckbox(f,mxResources.get("allPages"),d,!d);var E=this.addCheckbox(f,mxResources.get("lightbox"),!0,null,null,!k),F=this.addEditButton(f,E),H=F.getEditInput();k&&(H.style.marginLeft=E.style.marginLeft,E.style.display="none",b-=20);var I=this.addCheckbox(f,mxResources.get("layers"),!0);I.style.marginLeft=H.style.marginLeft;
+I.style.marginTop="8px";var L=this.addCheckbox(f,mxResources.get("tags"),!0);L.style.marginLeft=H.style.marginLeft;L.style.marginBottom="16px";L.style.marginTop="16px";mxEvent.addListener(E,"change",function(){E.checked?(I.removeAttribute("disabled"),H.removeAttribute("disabled")):(I.setAttribute("disabled","disabled"),H.setAttribute("disabled","disabled"));H.checked&&E.checked?F.getEditSelect().removeAttribute("disabled"):F.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,
+f,mxUtils.bind(this,function(){g(u.getTarget(),u.getColor(),null==G?!0:G.checked,E.checked,F.getLink(),I.checked,null!=q?q.value:null,null!=t?t.value:null,L.checked)}),null,mxResources.get("create"),n,v);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):u.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,d,e,g){var f=document.createElement("div");f.style.whiteSpace=
"nowrap";var l=document.createElement("h3");mxUtils.write(l,mxResources.get("image"));l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(g?"10":"4")+"px";f.appendChild(l);if(g){mxUtils.write(f,mxResources.get("zoom")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.style.marginRight="12px";m.value=this.lastExportZoom||"100%";f.appendChild(m);mxUtils.write(f,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";f.appendChild(k);mxUtils.br(f)}var p=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),n=e?null:this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),l=this.editor.graph,q=e?null:this.addCheckbox(f,mxResources.get("transparentBackground"),l.background==
mxConstants.NONE||null==l.background);null!=q&&(q.style.marginBottom="16px");b=new CustomDialog(this,f,mxUtils.bind(this,function(){var b=parseInt(m.value)/100||1,c=parseInt(k.value)||0;d(!p.checked,null!=n?n.checked:!1,null!=q?q.checked:!1,b,c)}),null,b,c);this.showDialog(b.container,300,(g?25:0)+(e?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,d,e,g,k,n,v,x){n=null!=n?n:Editor.defaultIncludeDiagram;var f=document.createElement("div");f.style.whiteSpace="nowrap";var l=this.editor.graph,
m="jpeg"==v?220:300,p=document.createElement("h3");mxUtils.write(p,b);p.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";f.appendChild(p);mxUtils.write(f,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";f.appendChild(q);mxUtils.write(f,mxResources.get("borderWidth")+":");var t=document.createElement("input");
-t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.value=this.lastExportBorder||"0";f.appendChild(t);mxUtils.br(f);var u=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,l.isSelectionEmpty()),D=document.createElement("input");D.style.marginTop="16px";D.style.marginRight="8px";D.style.marginLeft="24px";D.setAttribute("disabled","disabled");D.setAttribute("type","checkbox");var E=document.createElement("select");E.style.marginTop="16px";E.style.marginLeft=
-"8px";b=["selectionOnly","diagram","page"];for(p=0;p<b.length;p++)if(!l.isSelectionEmpty()||"selectionOnly"!=b[p]){var H=document.createElement("option");mxUtils.write(H,mxResources.get(b[p]));H.setAttribute("value",b[p]);E.appendChild(H)}x?(mxUtils.write(f,mxResources.get("size")+":"),f.appendChild(E),mxUtils.br(f),m+=26,mxEvent.addListener(E,"change",function(){"selectionOnly"==E.value&&(u.checked=!0)})):k&&(f.appendChild(D),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),m+=30,mxEvent.addListener(u,
-"change",function(){u.checked?D.removeAttribute("disabled"):D.setAttribute("disabled","disabled")}));l.isSelectionEmpty()?x&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",m-=30):(E.value="diagram",D.setAttribute("checked","checked"),D.defaultChecked=!0,mxEvent.addListener(u,"change",function(){E.value=u.checked?"selectionOnly":"diagram"}));var I=this.addCheckbox(f,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=v),L=null;Editor.isDarkMode()&&
-(L=this.addCheckbox(f,mxResources.get("dark"),!0),m+=26);var M=this.addCheckbox(f,mxResources.get("shadow"),l.shadowVisible),N=document.createElement("input");N.style.marginTop="16px";N.style.marginRight="8px";N.setAttribute("type","checkbox");var O=document.createElement("input");O.style.marginTop="16px";O.style.marginRight="8px";O.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||N.setAttribute("disabled","disabled");c&&(f.appendChild(N),mxUtils.write(f,mxResources.get("embedImages")),
-mxUtils.br(f),f.appendChild(O),mxUtils.write(f,mxResources.get("embedFonts")),mxUtils.br(f),m+=60);var J=null;if("png"==v||"jpeg"==v)J=this.addCheckbox(f,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),m+=30;var T=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=v);T.style.marginBottom="16px";var K=document.createElement("select");K.style.maxWidth="260px";K.style.marginLeft="8px";K.style.marginRight="10px";K.className="geBtn";c=document.createElement("option");
-c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));K.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));K.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));K.appendChild(c);"svg"==v&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(K),mxUtils.br(f),mxUtils.br(f),m+=50);d=new CustomDialog(this,f,
-mxUtils.bind(this,function(){this.lastExportBorder=t.value;this.lastExportZoom=q.value;g(q.value,I.checked,!u.checked,M.checked,T.checked,N.checked,t.value,D.checked,!1,K.value,null!=J?J.checked:null,null!=L?L.checked:null,E.value,O.checked)}),null,d,e);this.showDialog(d.container,340,m,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,d,e,g){var f=
-document.createElement("div");f.style.whiteSpace="nowrap";var l=this.editor.graph;if(null!=c){var m=document.createElement("h3");mxUtils.write(m,c);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(m)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),p=this.addCheckbox(f,mxResources.get("shadow"),l.shadowVisible&&e,!e),n=this.addCheckbox(f,d),q=this.addCheckbox(f,mxResources.get("lightbox"),!0),y=this.addEditButton(f,q),C=y.getEditInput(),G=1<l.model.getChildCount(l.model.getRoot()),
-F=this.addCheckbox(f,mxResources.get("layers"),G,!G);F.style.marginLeft=C.style.marginLeft;F.style.marginBottom="12px";F.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(G&&F.removeAttribute("disabled"),C.removeAttribute("disabled")):(F.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"));C.checked&&q.checked?y.getEditSelect().removeAttribute("disabled"):y.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,f,mxUtils.bind(this,
-function(){b(k.checked,p.checked,n.checked,q.checked,y.getLink(),F.checked)}),null,mxResources.get("embed"),g);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,d,e,g,k,n,v){function f(c){var f=" ",p="";e&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
+t.setAttribute("type","text");t.style.marginRight="16px";t.style.width="60px";t.style.marginLeft="4px";t.value=this.lastExportBorder||"0";f.appendChild(t);mxUtils.br(f);var u=this.addCheckbox(f,mxResources.get("selectionOnly"),!1,l.isSelectionEmpty()),E=document.createElement("input");E.style.marginTop="16px";E.style.marginRight="8px";E.style.marginLeft="24px";E.setAttribute("disabled","disabled");E.setAttribute("type","checkbox");var F=document.createElement("select");F.style.marginTop="16px";F.style.marginLeft=
+"8px";b=["selectionOnly","diagram","page"];for(p=0;p<b.length;p++)if(!l.isSelectionEmpty()||"selectionOnly"!=b[p]){var H=document.createElement("option");mxUtils.write(H,mxResources.get(b[p]));H.setAttribute("value",b[p]);F.appendChild(H)}x?(mxUtils.write(f,mxResources.get("size")+":"),f.appendChild(F),mxUtils.br(f),m+=26,mxEvent.addListener(F,"change",function(){"selectionOnly"==F.value&&(u.checked=!0)})):k&&(f.appendChild(E),mxUtils.write(f,mxResources.get("crop")),mxUtils.br(f),m+=30,mxEvent.addListener(u,
+"change",function(){u.checked?E.removeAttribute("disabled"):E.setAttribute("disabled","disabled")}));l.isSelectionEmpty()?x&&(u.style.display="none",u.nextSibling.style.display="none",u.nextSibling.nextSibling.style.display="none",m-=30):(F.value="diagram",E.setAttribute("checked","checked"),E.defaultChecked=!0,mxEvent.addListener(u,"change",function(){F.value=u.checked?"selectionOnly":"diagram"}));var I=this.addCheckbox(f,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=v),L=null;Editor.isDarkMode()&&
+(L=this.addCheckbox(f,mxResources.get("dark"),!0),m+=26);var M=this.addCheckbox(f,mxResources.get("shadow"),l.shadowVisible),N=document.createElement("input");N.style.marginTop="16px";N.style.marginRight="8px";N.setAttribute("type","checkbox");var P=document.createElement("input");P.style.marginTop="16px";P.style.marginRight="8px";P.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||N.setAttribute("disabled","disabled");c&&(f.appendChild(N),mxUtils.write(f,mxResources.get("embedImages")),
+mxUtils.br(f),f.appendChild(P),mxUtils.write(f,mxResources.get("embedFonts")),mxUtils.br(f),m+=60);var K=null;if("png"==v||"jpeg"==v)K=this.addCheckbox(f,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),m+=30;var T=this.addCheckbox(f,mxResources.get("includeCopyOfMyDiagram"),n,null,null,"jpeg"!=v);T.style.marginBottom="16px";var J=document.createElement("select");J.style.maxWidth="260px";J.style.marginLeft="8px";J.style.marginRight="10px";J.className="geBtn";c=document.createElement("option");
+c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));J.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));J.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));J.appendChild(c);"svg"==v&&(mxUtils.write(f,mxResources.get("links")+":"),f.appendChild(J),mxUtils.br(f),mxUtils.br(f),m+=50);d=new CustomDialog(this,f,
+mxUtils.bind(this,function(){this.lastExportBorder=t.value;this.lastExportZoom=q.value;g(q.value,I.checked,!u.checked,M.checked,T.checked,N.checked,t.value,E.checked,!1,J.value,null!=K?K.checked:null,null!=L?L.checked:null,F.value,P.checked)}),null,d,e);this.showDialog(d.container,340,m,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,d,e,g){var f=
+document.createElement("div");f.style.whiteSpace="nowrap";var l=this.editor.graph;if(null!=c){var m=document.createElement("h3");mxUtils.write(m,c);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";f.appendChild(m)}var k=this.addCheckbox(f,mxResources.get("fit"),!0),p=this.addCheckbox(f,mxResources.get("shadow"),l.shadowVisible&&e,!e),n=this.addCheckbox(f,d),q=this.addCheckbox(f,mxResources.get("lightbox"),!0),y=this.addEditButton(f,q),C=y.getEditInput(),D=1<l.model.getChildCount(l.model.getRoot()),
+G=this.addCheckbox(f,mxResources.get("layers"),D,!D);G.style.marginLeft=C.style.marginLeft;G.style.marginBottom="12px";G.style.marginTop="8px";mxEvent.addListener(q,"change",function(){q.checked?(D&&G.removeAttribute("disabled"),C.removeAttribute("disabled")):(G.setAttribute("disabled","disabled"),C.setAttribute("disabled","disabled"));C.checked&&q.checked?y.getEditSelect().removeAttribute("disabled"):y.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,f,mxUtils.bind(this,
+function(){b(k.checked,p.checked,n.checked,q.checked,y.getLink(),G.checked)}),null,mxResources.get("embed"),g);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,d,e,g,k,n,v){function f(c){var f=" ",p="";e&&(f=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
EditorUi.lightboxHost+"/?client=1"+(null!=m?"&page="+m:"")+(g?"&edit=_blank":"")+(k?"&layers=1":"")+"');}})(this);\"",p+="cursor:pointer;");b&&(p+="max-width:100%;");var q="";d&&(q=' width="'+Math.round(l.width)+'" height="'+Math.round(l.height)+'"');n('<img src="'+c+'"'+q+(""!=p?' style="'+p+'"':"")+f+"/>")}var l=this.editor.graph.getGraphBounds(),m=this.getSelectedPageIndex();if(this.isExportToCanvas())this.editor.exportToCanvas(mxUtils.bind(this,function(b){var c=e?this.getFileData(!0):null;b=
this.createImageDataUri(b,c,"png");f(b)}),null,null,null,mxUtils.bind(this,function(b){v({message:mxResources.get("unknownError")})}),null,!0,d?2:1,null,c,null,null,Editor.defaultBorder);else if(c=this.getFileData(!0),l.width*l.height<=MAX_AREA&&c.length<=MAX_REQUEST_SIZE){var p="";d&&(p="&w="+Math.round(2*l.width)+"&h="+Math.round(2*l.height));var q=new mxXmlRequest(EXPORT_URL,"format=png&base64=1&embedXml="+(e?"1":"0")+p+"&xml="+encodeURIComponent(c));q.send(mxUtils.bind(this,function(){200<=q.getStatus()&&
299>=q.getStatus()?f("data:image/png;base64,"+q.getText()):v({message:mxResources.get("unknownError")})}))}else v({message:mxResources.get("drawingTooLarge")})};EditorUi.prototype.createEmbedSvg=function(b,c,d,e,g,k,n){var f=this.editor.graph.getSvg(null,null,null,null,null,null,null,null,null,null,!d),l=f.getElementsByTagName("a");if(null!=l)for(var m=0;m<l.length;m++){var p=l[m].getAttribute("href");null!=p&&"#"==p.charAt(0)&&"_blank"==l[m].getAttribute("target")&&l[m].removeAttribute("target")}e&&
@@ -10929,15 +10932,15 @@ arguments)};document.body.appendChild(f.container);f.model.setRoot(p.root)}this.
c(b)}),null,null,e,null,f.shadowVisible,null,f,g,null,null,null,"diagram",null)}catch(z){null!=c&&c(z)}};EditorUi.prototype.getEmbeddedSvg=function(b,c,d,e,g,k,n,v,x,A,z,B,y){v=null!=v?v:!0;z=null!=z?z:0;n=null!=x?x:c.background;n==mxConstants.NONE&&(n=null);k=c.getSvg(n,A,z,null,null,k,null,null,null,c.shadowVisible||B,null,y,"diagram");(c.shadowVisible||B)&&c.addSvgShadow(k,null,null,0==z);null!=b&&k.setAttribute("content",b);null!=d&&k.setAttribute("resource",d);var f=mxUtils.bind(this,function(b){b=
(e?"":Graph.xmlDeclaration+"\n"+Graph.svgFileComment+"\n"+Graph.svgDoctype+"\n")+mxUtils.getXml(b);null!=g&&g(b);return b});c.mathEnabled&&this.editor.addMathCss(k);if(null!=g)this.embedFonts(k,mxUtils.bind(this,function(b){v?this.editor.convertImages(b,mxUtils.bind(this,function(b){f(b)})):f(b)}));else return f(k)};EditorUi.prototype.embedFonts=function(b,c){this.editor.loadFonts(mxUtils.bind(this,function(){try{null!=this.editor.resolvedFontCss&&this.editor.addFontCss(b,this.editor.resolvedFontCss),
this.editor.embedExtFonts(mxUtils.bind(this,function(f){try{null!=f&&this.editor.addFontCss(b,f),c(b)}catch(p){c(b)}}))}catch(m){c(b)}}))};EditorUi.prototype.exportImage=function(b,c,d,e,g,k,n,v,x,A,z,B,y){x=null!=x?x:"png";if(this.spinner.spin(document.body,mxResources.get("exporting"))){var f=this.editor.graph.isSelectionEmpty();d=null!=d?d:f;null==this.thumbImageCache&&(this.thumbImageCache={});try{this.editor.exportToCanvas(mxUtils.bind(this,function(b){this.spinner.stop();try{this.saveCanvas(b,
-g?this.getFileData(!0,null,null,null,d,v):null,x,null==this.pages||0==this.pages.length,z)}catch(F){this.handleError(F)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,d,b||1,c,e,null,null,k,n,A,B,y)}catch(G){this.spinner.stop(),this.handleError(G)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,d,e,g,k,n){c=null!=c?c:0;d=null!=d?d:0;var f=[];try{var l=
+g?this.getFileData(!0,null,null,null,d,v):null,x,null==this.pages||0==this.pages.length,z)}catch(G){this.handleError(G)}}),null,this.thumbImageCache,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,d,b||1,c,e,null,null,k,n,A,B,y)}catch(D){this.spinner.stop(),this.handleError(D)}}};EditorUi.prototype.isCorsEnabledForUrl=function(b){return this.editor.isCorsEnabledForUrl(b)};EditorUi.prototype.importXml=function(b,c,d,e,g,k,n){c=null!=c?c:0;d=null!=d?d:0;var f=[];try{var l=
this.editor.graph;if(null!=b&&0<b.length){l.model.beginUpdate();try{var m=mxUtils.parseXml(b);b={};var p=this.editor.extractGraphModel(m.documentElement,null!=this.pages);if(null!=p&&"mxfile"==p.nodeName&&null!=this.pages){var q=p.getElementsByTagName("diagram");if(1==q.length&&!k){if(p=Editor.parseDiagramNode(q[0]),null!=this.currentPage&&(b[q[0].getAttribute("id")]=this.currentPage.getId(),null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&this.currentPage.getName()==mxResources.get("pageWithNumber",
-[1]))){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<q.length){k=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),p=Editor.parseDiagramNode(q[0]),e=!1,u=1);for(;u<q.length;u++){var G=q[u].getAttribute("id");q[u].removeAttribute("id");var F=this.updatePageRoot(new DiagramPage(q[u]));b[G]=q[u].getAttribute("id");var D=this.pages.length;null==
-F.getName()&&F.setName(mxResources.get("pageWithNumber",[D+1]));l.model.execute(new ChangePage(this,F,F,D,!0));k.push(F)}this.updatePageLinks(b,k)}}if(null!=p&&"mxGraphModel"===p.nodeName&&(f=l.importGraphModel(p,c,d,e),null!=f))for(u=0;u<f.length;u++)this.updatePageLinksForCell(b,f[u]);n&&this.insertHandler(f,null,null,l.defaultVertexStyle,l.defaultEdgeStyle,!1,!0)}finally{l.model.endUpdate()}}}catch(E){if(g)throw E;this.handleError(E)}return f};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=
+[1]))){var t=q[0].getAttribute("name");null!=t&&""!=t&&this.editor.graph.model.execute(new RenamePage(this,this.currentPage,t))}}else if(0<q.length){k=[];var u=0;null!=this.pages&&1==this.pages.length&&this.isDiagramEmpty()&&(b[q[0].getAttribute("id")]=this.pages[0].getId(),p=Editor.parseDiagramNode(q[0]),e=!1,u=1);for(;u<q.length;u++){var D=q[u].getAttribute("id");q[u].removeAttribute("id");var G=this.updatePageRoot(new DiagramPage(q[u]));b[D]=q[u].getAttribute("id");var E=this.pages.length;null==
+G.getName()&&G.setName(mxResources.get("pageWithNumber",[E+1]));l.model.execute(new ChangePage(this,G,G,E,!0));k.push(G)}this.updatePageLinks(b,k)}}if(null!=p&&"mxGraphModel"===p.nodeName&&(f=l.importGraphModel(p,c,d,e),null!=f))for(u=0;u<f.length;u++)this.updatePageLinksForCell(b,f[u]);n&&this.insertHandler(f,null,null,l.defaultVertexStyle,l.defaultEdgeStyle,!1,!0)}finally{l.model.endUpdate()}}}catch(F){if(g)throw F;this.handleError(F)}return f};EditorUi.prototype.updatePageLinks=function(b,c){for(var d=
0;d<c.length;d++)this.updatePageLinksForCell(b,c[d].root)};EditorUi.prototype.updatePageLinksForCell=function(b,c){var d=document.createElement("div"),f=this.editor.graph,e=f.getLinkForCell(c);null!=e&&f.setLinkForCell(c,this.updatePageLink(b,e));if(f.isHtmlLabel(c)){d.innerHTML=f.sanitizeHtml(f.getLabel(c));for(var l=d.getElementsByTagName("a"),g=!1,k=0;k<l.length;k++)e=l[k].getAttribute("href"),null!=e&&(l[k].setAttribute("href",this.updatePageLink(b,e)),g=!0);g&&f.labelChanged(c,d.innerHTML)}for(k=
0;k<f.model.getChildCount(c);k++)this.updatePageLinksForCell(b,f.model.getChildAt(c,k))};EditorUi.prototype.updatePageLink=function(b,c){if(Graph.isPageLink(c)){var d=b[c.substring(c.indexOf(",")+1)];c=null!=d?"data:page/id,"+d:null}else if("data:action/json,"==c.substring(0,17))try{var f=JSON.parse(c.substring(17));if(null!=f.actions){for(var e=0;e<f.actions.length;e++){var l=f.actions[e];if(null!=l.open&&Graph.isPageLink(l.open)){var g=l.open.substring(l.open.indexOf(",")+1),d=b[g];null!=d?l.open=
"data:page/id,"+d:null==this.getPageById(g)&&delete l.open}}c="data:action/json,"+JSON.stringify(f)}}catch(v){}return c};EditorUi.prototype.isRemoteVisioFormat=function(b){return/(\.v(sd|dx))($|\?)/i.test(b)||/(\.vs(s|x))($|\?)/i.test(b)};EditorUi.prototype.importVisio=function(b,c,d,e,g){e=null!=e?e:b.name;d=null!=d?d:mxUtils.bind(this,function(b){this.handleError(b)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportVisio){var f=this.isRemoteVisioFormat(e);try{var l=
"UNKNOWN-VISIO",k=e.lastIndexOf(".");if(0<=k&&k<e.length)l=e.substring(k+1).toUpperCase();else{var m=e.lastIndexOf("/");0<=m&&m<e.length&&(e=e.substring(m+1))}EditorUi.logEvent({category:l+"-MS-IMPORT-FILE",action:"filename_"+e,label:f?"remote":"local"})}catch(B){}if(f)if(null==VSD_CONVERT_URL||this.isOffline())d({message:"conf"==this.getServiceName()?mxResources.get("vsdNoConfig"):mxResources.get("serviceUnavailableOrBlocked")});else{f=new FormData;f.append("file1",b,e);var p=new XMLHttpRequest;
-p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(e)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);null!=g&&p.setRequestHeader("x-convert-custom",g);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var f=new FileReader;f.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(G){d({message:mxResources.get("errorLoadingFile")})}});f.readAsText(b)}else this.doImportVisio(b,
+p.open("POST",VSD_CONVERT_URL+(/(\.vss|\.vsx)$/.test(e)?"?stencil=1":""));p.responseType="blob";this.addRemoteServiceSecurityCheck(p);null!=g&&p.setRequestHeader("x-convert-custom",g);p.onreadystatechange=mxUtils.bind(this,function(){if(4==p.readyState)if(200<=p.status&&299>=p.status)try{var b=p.response;if("text/xml"==b.type){var f=new FileReader;f.onload=mxUtils.bind(this,function(b){try{c(b.target.result)}catch(D){d({message:mxResources.get("errorLoadingFile")})}});f.readAsText(b)}else this.doImportVisio(b,
c,d,e)}catch(C){d(C)}else try{""==p.responseType||"text"==p.responseType?d({message:p.responseText}):(f=new FileReader,f.onload=function(){d({message:JSON.parse(f.result).Message})},f.readAsText(p.response))}catch(C){d({})}});p.send(f)}else try{this.doImportVisio(b,c,d,e)}catch(B){d(B)}}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportVisio||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",
f))};EditorUi.prototype.importGraphML=function(b,c,d){d=null!=d?d:mxUtils.bind(this,function(b){this.handleError(b)});var f=mxUtils.bind(this,function(){this.loadingExtensions=!1;if(this.doImportGraphML)try{this.doImportGraphML(b,c,d)}catch(q){d(q)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});this.doImportGraphML||this.loadingExtensions||this.isOffline(!0)?f():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",f))};EditorUi.prototype.exportVisio=
function(b){var c=mxUtils.bind(this,function(){this.loadingExtensions=!1;if("undefined"!==typeof VsdxExport)try{(new VsdxExport(this)).exportCurrentDiagrams(b)||this.handleError({message:mxResources.get("unknownError")})}catch(m){this.handleError(m)}else this.spinner.stop(),this.handleError({message:mxResources.get("serviceUnavailableOrBlocked")})});"undefined"!==typeof VsdxExport||this.loadingExtensions||this.isOffline(!0)?c():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",c))};EditorUi.prototype.convertLucidChart=
@@ -10947,7 +10950,7 @@ function(){mxscript("js/orgchart/mxOrgChartLayout.js",f)})})})}):mxscript("js/ex
b.replace(/ xmlns:\S*="http:\/\/www.w3.org\/XML\/1998\/namespace"/g,"").replace(/ (NS xml|\S*):space="preserve"/g,' xml:space="preserve"');var c=mxUtils.parseXml(b).getElementsByTagName("svg");if(0<c.length){var l=parseFloat(c[0].getAttribute("width")),g=parseFloat(c[0].getAttribute("height"));if(isNaN(l)||isNaN(g))try{var k=c[0].getAttribute("viewBox").split(/\s+/),l=parseFloat(k[2]),g=parseFloat(k[3])}catch(B){l=l||100,g=g||100}d(f.convertDataUri(Editor.createSvgDataUri(b)),l,g)}else e({message:mxResources.get("invalidInput")})}catch(B){e(B)}})}catch(u){e(u)}};
"undefined"!==typeof mermaid||this.loadingMermaid||this.isOffline(!0)?l():(this.loadingMermaid=!0,"1"==urlParams.dev?mxscript("js/mermaid/mermaid.min.js",l):mxscript("js/extensions.min.js",l))};EditorUi.prototype.generatePlantUmlImage=function(b,c,d,e){function f(b,c,d){c1=b>>2;c2=(b&3)<<4|c>>4;c3=(c&15)<<2|d>>6;c4=d&63;r="";r+=l(c1&63);r+=l(c2&63);r+=l(c3&63);return r+=l(c4&63)}function l(b){if(10>b)return String.fromCharCode(48+b);b-=10;if(26>b)return String.fromCharCode(65+b);b-=26;if(26>b)return String.fromCharCode(97+
b);b-=26;return 0==b?"-":1==b?"_":"?"}var g=new XMLHttpRequest;g.open("GET",("txt"==c?PLANT_URL+"/txt/":"png"==c?PLANT_URL+"/png/":PLANT_URL+"/svg/")+function(b){r="";for(i=0;i<b.length;i+=3)r=i+2==b.length?r+f(b.charCodeAt(i),b.charCodeAt(i+1),0):i+1==b.length?r+f(b.charCodeAt(i),0,0):r+f(b.charCodeAt(i),b.charCodeAt(i+1),b.charCodeAt(i+2));return r}(Graph.arrayBufferToString(pako.deflateRaw(b))),!0);"txt"!=c&&(g.responseType="blob");g.onload=function(b){if(200<=this.status&&300>this.status)if("txt"==
-c)d(this.response);else{var f=new FileReader;f.readAsDataURL(this.response);f.onloadend=function(b){var c=new Image;c.onload=function(){try{var b=c.width,l=c.height;if(0==b&&0==l){var g=f.result,k=g.indexOf(","),m=decodeURIComponent(escape(atob(g.substring(k+1)))),p=mxUtils.parseXml(m).getElementsByTagName("svg");0<p.length&&(b=parseFloat(p[0].getAttribute("width")),l=parseFloat(p[0].getAttribute("height")))}d(f.result,b,l)}catch(E){e(E)}};c.src=f.result};f.onerror=function(b){e(b)}}else e(b)};g.onerror=
+c)d(this.response);else{var f=new FileReader;f.readAsDataURL(this.response);f.onloadend=function(b){var c=new Image;c.onload=function(){try{var b=c.width,l=c.height;if(0==b&&0==l){var g=f.result,k=g.indexOf(","),m=decodeURIComponent(escape(atob(g.substring(k+1)))),p=mxUtils.parseXml(m).getElementsByTagName("svg");0<p.length&&(b=parseFloat(p[0].getAttribute("width")),l=parseFloat(p[0].getAttribute("height")))}d(f.result,b,l)}catch(F){e(F)}};c.src=f.result};f.onerror=function(b){e(b)}}else e(b)};g.onerror=
function(b){e(b)};g.send()};EditorUi.prototype.insertAsPreText=function(b,c,d){var f=this.editor.graph,e=null;f.getModel().beginUpdate();try{e=f.insertVertex(null,null,"<pre>"+b+"</pre>",c,d,1,1,"text;html=1;align=left;verticalAlign=top;"),f.updateCellSize(e,!0)}finally{f.getModel().endUpdate()}return e};EditorUi.prototype.insertTextAt=function(b,c,d,e,g,k,n,v){k=null!=k?k:!0;n=null!=n?n:!0;if(null!=b)if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b))this.parseFile(new Blob([b.replace(/\s+/g,
" ")],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&this.editor.graph.setSelectionCells(this.insertTextAt(b.responseText,c,d,!0))}));else if("data:"==b.substring(0,5)||!this.isOffline()&&(g||/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b))){var f=this.editor.graph;if("data:application/pdf;base64,"==b.substring(0,28)){var l=Editor.extractGraphModelFromPdf(b);if(null!=l&&0<l.length)return this.importXml(l,c,d,k,!0,v)}if(Editor.isPngDataUrl(b)&&
(l=Editor.extractGraphModelFromPng(b),null!=l&&0<l.length))return this.importXml(l,c,d,k,!0,v);if("data:image/svg+xml;"==b.substring(0,19))try{l=null;"data:image/svg+xml;base64,"==b.substring(0,26)?(l=b.substring(b.indexOf(",")+1),l=window.atob&&!mxClient.IS_SF?atob(l):Base64.decode(l,!0)):l=decodeURIComponent(b.substring(b.indexOf(",")+1));var m=this.importXml(l,c,d,k,!0,v);if(0<m.length)return m}catch(y){}this.loadImage(b,mxUtils.bind(this,function(e){if("data:"==b.substring(0,5))this.resizeImage(e,
@@ -10965,18 +10968,18 @@ m=mxUtils.bind(this,function(b){var c=null;null!=b&&"<mxlibrary"==b.substring(0,
z+1))),A&&c.isGridEnabled()&&(d=c.snap(d),e=c.snap(e)),l=[c.insertVertex(null,null,"",d,e,g,k,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(f=!0,this.importGraphML(b,m)):null!=x&&null!=n&&(/(\.v(dx|sdx?))($|\?)/i.test(n)||/(\.vs(x|sx?))($|\?)/i.test(n))?(f=!0,this.importVisio(x,m)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,n)?(f=!0,this.parseFile(null!=
x?x:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?m(b.responseText):null!=v&&v(null))}),n)):0==b.indexOf("PK")&&null!=x?(f=!0,this.importZipFile(x,m,mxUtils.bind(this,function(){l=this.insertTextAt(this.validateFileData(b),d,e,!0,null,A);v(l)}))):/(\.v(sd|dx))($|\?)/i.test(n)||/(\.vs(s|x))($|\?)/i.test(n)||(l=this.insertTextAt(this.validateFileData(b),d,e,!0,null,A,null,null!=B?mxEvent.isControlDown(B):null));f||null==
v||v(l);return l};EditorUi.prototype.importFiles=function(b,c,d,e,g,k,n,v,x,A,z,B,y){e=null!=e?e:this.maxImageSize;A=null!=A?A:this.maxImageBytes;var f=null!=c&&null!=d,l=!0;c=null!=c?c:0;d=null!=d?d:0;var m=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var p=z||this.resampleThreshold,q=0;q<b.length;q++)if("image/"==b[q].type.substring(0,6)&&b[q].size>p){m=!0;break}var t=mxUtils.bind(this,function(){var m=this.editor.graph,p=m.gridSize;g=null!=g?g:mxUtils.bind(this,function(b,c,d,e,g,l,k,m,p){try{return null!=
-b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,k)),null):this.importFile(b,c,d,e,g,l,k,m,p,f,B,y)}catch(pa){return this.handleError(pa),null}});k=null!=k?k:mxUtils.bind(this,function(b){m.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,t=q,u=[],E=mxUtils.bind(this,function(b,c){u[b]=c;if(0==--t){this.spinner.stop();if(null!=v)v(u);else{var d=[];m.getModel().beginUpdate();try{for(var f=0;f<u.length;f++){var e=
+b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,k)),null):this.importFile(b,c,d,e,g,l,k,m,p,f,B,y)}catch(pa){return this.handleError(pa),null}});k=null!=k?k:mxUtils.bind(this,function(b){m.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,t=q,u=[],F=mxUtils.bind(this,function(b,c){u[b]=c;if(0==--t){this.spinner.stop();if(null!=v)v(u);else{var d=[];m.getModel().beginUpdate();try{for(var f=0;f<u.length;f++){var e=
u[f]();null!=e&&(d=d.concat(e))}}finally{m.getModel().endUpdate()}}k(d)}}),C=0;C<q;C++)mxUtils.bind(this,function(f){var k=b[f];if(null!=k){var q=new FileReader;q.onload=mxUtils.bind(this,function(b){if(null==n||n(k))if("image/"==k.type.substring(0,6))if("image/svg"==k.type.substring(0,9)){var q=Graph.clipSvgDataUri(b.target.result),t=q.indexOf(","),y=decodeURIComponent(escape(atob(q.substring(t+1)))),u=mxUtils.parseXml(y),y=u.getElementsByTagName("svg");if(0<y.length){var y=y[0],v=B?null:y.getAttribute("content");
-null!=v&&"<"!=v.charAt(0)&&"%"!=v.charAt(0)&&(v=unescape(window.atob?atob(v):Base64.decode(v,!0)));null!=v&&"%"==v.charAt(0)&&(v=decodeURIComponent(v));null==v||"<mxfile "!==v.substring(0,8)&&"<mxGraphModel "!==v.substring(0,14)?E(f,mxUtils.bind(this,function(){try{if(q.substring(0,t+1),null!=u){var b=u.getElementsByTagName("svg");if(0<b.length){var l=b[0],n=l.getAttribute("width"),y=l.getAttribute("height"),n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,y=null!=y&&"%"!=y.charAt(y.length-
-1)?parseFloat(y):NaN,B=l.getAttribute("viewBox");if(null==B||0==B.length)l.setAttribute("viewBox","0 0 "+n+" "+y);else if(isNaN(n)||isNaN(y)){var v=B.split(" ");3<v.length&&(n=parseFloat(v[2]),y=parseFloat(v[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(l));var E=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,y)),A=g(q,k.type,c+f*p,d+f*p,Math.max(1,Math.round(n*E)),Math.max(1,Math.round(y*E)),k.name);if(isNaN(n)||isNaN(y)){var C=new Image;C.onload=mxUtils.bind(this,function(){n=Math.max(1,C.width);
-y=Math.max(1,C.height);A[0].geometry.width=n;A[0].geometry.height=y;l.setAttribute("viewBox","0 0 "+n+" "+y);q=Editor.createSvgDataUri(mxUtils.getXml(l));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));m.setCellStyles("image",q,[A[0]])});C.src=Editor.createSvgDataUri(mxUtils.getXml(l))}return A}}}catch(ea){}return null})):E(f,mxUtils.bind(this,function(){return g(v,"text/xml",c+f*p,d+f*p,0,0,k.name)}))}else E(f,mxUtils.bind(this,function(){return null}))}else{y=!1;if("image/png"==
-k.type){var C=B?null:this.extractGraphModelFromPng(b.target.result);if(null!=C&&0<C.length){var x=new Image;x.src=b.target.result;E(f,mxUtils.bind(this,function(){return g(C,"text/xml",c+f*p,d+f*p,x.width,x.height,k.name)}));y=!0}}y||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):
-this.loadImage(b.target.result,mxUtils.bind(this,function(m){this.resizeImage(m,b.target.result,mxUtils.bind(this,function(b,m,n){E(f,mxUtils.bind(this,function(){if(null!=b&&b.length<A){var q=l&&this.isResampleImageSize(k.size,z)?Math.min(1,Math.min(e/m,e/n)):1;return g(b,k.type,c+f*p,d+f*p,Math.round(m*q),Math.round(n*q),k.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),l,e,z,k.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else q=
-b.target.result,g(q,k.type,c+f*p,d+f*p,240,160,k.name,function(b){E(f,function(){return b})},k)});/(\.v(dx|sdx?))($|\?)/i.test(k.name)||/(\.vs(x|sx?))($|\?)/i.test(k.name)?g(null,k.type,c+f*p,d+f*p,240,160,k.name,function(b){E(f,function(){return b})},k):"image"==k.type.substring(0,5)||"application/pdf"==k.type?q.readAsDataURL(k):q.readAsText(k)}})(C)});if(m){m=[];for(q=0;q<b.length;q++)m.push(b[q]);b=m;this.confirmImageResize(function(b){l=b;t()},x)}else t()};EditorUi.prototype.confirmImageResize=
+null!=v&&"<"!=v.charAt(0)&&"%"!=v.charAt(0)&&(v=unescape(window.atob?atob(v):Base64.decode(v,!0)));null!=v&&"%"==v.charAt(0)&&(v=decodeURIComponent(v));null==v||"<mxfile "!==v.substring(0,8)&&"<mxGraphModel "!==v.substring(0,14)?F(f,mxUtils.bind(this,function(){try{if(q.substring(0,t+1),null!=u){var b=u.getElementsByTagName("svg");if(0<b.length){var l=b[0],n=l.getAttribute("width"),y=l.getAttribute("height"),n=null!=n&&"%"!=n.charAt(n.length-1)?parseFloat(n):NaN,y=null!=y&&"%"!=y.charAt(y.length-
+1)?parseFloat(y):NaN,B=l.getAttribute("viewBox");if(null==B||0==B.length)l.setAttribute("viewBox","0 0 "+n+" "+y);else if(isNaN(n)||isNaN(y)){var v=B.split(" ");3<v.length&&(n=parseFloat(v[2]),y=parseFloat(v[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(l));var F=Math.min(1,Math.min(e/Math.max(1,n)),e/Math.max(1,y)),A=g(q,k.type,c+f*p,d+f*p,Math.max(1,Math.round(n*F)),Math.max(1,Math.round(y*F)),k.name);if(isNaN(n)||isNaN(y)){var C=new Image;C.onload=mxUtils.bind(this,function(){n=Math.max(1,C.width);
+y=Math.max(1,C.height);A[0].geometry.width=n;A[0].geometry.height=y;l.setAttribute("viewBox","0 0 "+n+" "+y);q=Editor.createSvgDataUri(mxUtils.getXml(l));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));m.setCellStyles("image",q,[A[0]])});C.src=Editor.createSvgDataUri(mxUtils.getXml(l))}return A}}}catch(ea){}return null})):F(f,mxUtils.bind(this,function(){return g(v,"text/xml",c+f*p,d+f*p,0,0,k.name)}))}else F(f,mxUtils.bind(this,function(){return null}))}else{y=!1;if("image/png"==
+k.type){var C=B?null:this.extractGraphModelFromPng(b.target.result);if(null!=C&&0<C.length){var x=new Image;x.src=b.target.result;F(f,mxUtils.bind(this,function(){return g(C,"text/xml",c+f*p,d+f*p,x.width,x.height,k.name)}));y=!0}}y||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):
+this.loadImage(b.target.result,mxUtils.bind(this,function(m){this.resizeImage(m,b.target.result,mxUtils.bind(this,function(b,m,n){F(f,mxUtils.bind(this,function(){if(null!=b&&b.length<A){var q=l&&this.isResampleImageSize(k.size,z)?Math.min(1,Math.min(e/m,e/n)):1;return g(b,k.type,c+f*p,d+f*p,Math.round(m*q),Math.round(n*q),k.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),l,e,z,k.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else q=
+b.target.result,g(q,k.type,c+f*p,d+f*p,240,160,k.name,function(b){F(f,function(){return b})},k)});/(\.v(dx|sdx?))($|\?)/i.test(k.name)||/(\.vs(x|sx?))($|\?)/i.test(k.name)?g(null,k.type,c+f*p,d+f*p,240,160,k.name,function(b){F(f,function(){return b})},k):"image"==k.type.substring(0,5)||"application/pdf"==k.type?q.readAsDataURL(k):q.readAsText(k)}})(C)});if(m){m=[];for(q=0;q<b.length;q++)m.push(b[q]);b=m;this.confirmImageResize(function(b){l=b;t()},x)}else t()};EditorUi.prototype.confirmImageResize=
function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},f=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,e=function(f,e){if(f||c)mxSettings.setResizeImages(f?e:null),mxSettings.save();d();b(e)};null==f||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(b){e(b,!0)},function(b){e(b,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+
'"/>','<img style="margin-top:8px;" src="'+Editor.hiResImage+'"/>',isLocalStorage||mxClient.IS_CHROMEAPP)).container,340,isLocalStorage||mxClient.IS_CHROMEAPP?220:200,!0,!0):e(!1,f)};EditorUi.prototype.parseFile=function(b,c,d){d=null!=d?d:b.name;var f=new FormData;f.append("format","xml");f.append("upfile",b,d);var e=new XMLHttpRequest;e.open("POST",OPEN_URL);e.onreadystatechange=function(){c(e)};e.send(f);try{EditorUi.logEvent({category:"GLIFFY-IMPORT-FILE",action:"size_"+b.size})}catch(t){}};EditorUi.prototype.isResampleImageSize=
function(b,c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,d,e,g,k,n){g=null!=g?g:this.maxImageSize;var f=Math.max(1,b.width),l=Math.max(1,b.height);if(e&&this.isResampleImageSize(null!=n?n:c.length,k))try{var m=Math.max(f/g,l/g);if(1<m){var p=Math.round(f/m),q=Math.round(l/m),y=document.createElement("canvas");y.width=p;y.height=q;y.getContext("2d").drawImage(b,0,0,p,q);var t=y.toDataURL();if(t.length<c.length){var u=document.createElement("canvas");
-u.width=p;u.height=q;var F=u.toDataURL();t!==F&&(c=t,f=p,l=q)}}}catch(D){}d(c,f,l)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,d){try{var f=new Image;f.onload=function(){f.width=0<f.width?f.width:120;f.height=0<f.height?f.height:120;c(f)};null!=d&&(f.onerror=d);f.src=b}catch(q){if(null!=d)d(q);else throw q;}};var g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=
+u.width=p;u.height=q;var G=u.toDataURL();t!==G&&(c=t,f=p,l=q)}}}catch(E){}d(c,f,l)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,d){try{var f=new Image;f.onload=function(){f.width=0<f.width?f.width:120;f.height=0<f.height?f.height:120;c(f)};null!=d&&(f.onerror=d);f.src=b}catch(q){if(null!=d)d(q);else throw q;}};var g=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=
mxStencilRegistry.allowEval&&!this.isOfflineApp();this.isSettingsEnabled()&&("1"==urlParams.sketch&&this.doSetSketchMode(null!=mxSettings.settings.sketchMode&&null==urlParams.rough?mxSettings.settings.sketchMode:"0"!=urlParams.rough),this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&(c.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);c.cellEditor.editPlantUmlData=function(d,f,e){var g=JSON.parse(e);f=new TextareaDialog(b,mxResources.get("plantUml")+
":",g.data,function(f){null!=f&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(f,g.format,function(e,l,k){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==g.format)c.labelChanged(d,"<pre>"+e+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(e),[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=l,m.height=k,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:f,format:g.format}))}finally{c.getModel().endUpdate()}},
function(c){b.handleError(c)})},null,null,400,220);b.showDialog(f.container,420,300,!0,!0);f.init()};c.cellEditor.editMermaidData=function(d,f,e){var g=JSON.parse(e);f=new TextareaDialog(b,mxResources.get("mermaid")+":",g.data,function(f){null!=f&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(f,g.config,function(e,l,k){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",e,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,
@@ -10996,9 +10999,9 @@ b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxIm
b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,f)),e/Math.max(1,b));c.insertImage(decodeURIComponent(d),f*e,b*e)})):document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"));b.stopPropagation();
b.preventDefault()})))}));this.isSettingsEnabled()&&(C=this.editor.graph.view,C.setUnit(mxSettings.getUnit()),C.addListener("unitChanged",function(b,c){mxSettings.setUnit(c.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,C.unit),this.refresh());if("1"==urlParams.styledev){C=document.getElementById("geFooter");null!=C&&(this.styleInput=
document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),C.appendChild(this.styleInput),
-this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,c){if(0<this.editor.graph.getSelectionCount()){var d=this.editor.graph.getSelectionCell(),d=this.editor.graph.getModel().getStyle(d);this.styleInput.value=d||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var G=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:G.apply(this,arguments)}}C=document.getElementById("geInfo");
-null!=C&&C.parentNode.removeChild(C);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var F=null;mxEvent.addListener(c.container,"dragleave",function(b){c.isEnabled()&&(null!=F&&(F.parentNode.removeChild(F),F=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==F&&(!mxClient.IS_IE||10<document.documentMode)&&(F=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();
-b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=F&&(F.parentNode.removeChild(F),F=null);if(c.isEnabled()){var d=mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),f=c.view.translate,e=c.view.scale,g=d.x/e-f.x,l=d.y/e-f.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=g=null),this.importFiles(b.dataTransfer.files,g,l,this.maxImageSize,null,null,null,
+this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,c){if(0<this.editor.graph.getSelectionCount()){var d=this.editor.graph.getSelectionCell(),d=this.editor.graph.getModel().getStyle(d);this.styleInput.value=d||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var D=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:D.apply(this,arguments)}}C=document.getElementById("geInfo");
+null!=C&&C.parentNode.removeChild(C);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var G=null;mxEvent.addListener(c.container,"dragleave",function(b){c.isEnabled()&&(null!=G&&(G.parentNode.removeChild(G),G=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==G&&(!mxClient.IS_IE||10<document.documentMode)&&(G=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();
+b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=G&&(G.parentNode.removeChild(G),G=null);if(c.isEnabled()){var d=mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),f=c.view.translate,e=c.view.scale,g=d.x/e-f.x,l=d.y/e-f.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=g=null),this.importFiles(b.dataTransfer.files,g,l,this.maxImageSize,null,null,null,
null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=g=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,g,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var n=null,f=d.getElementsByTagName("img");
null!=f&&1==f.length?(m=f[0].getAttribute("src"),null==m&&(m=f[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(n=!0)):(f=d.getElementsByTagName("a"),null!=f&&1==f.length?m=f[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var p=!0,q=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,g,l,!0,n,null,p,mxEvent.isControlDown(b)))});n&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){p=
b;q()},mxEvent.isControlDown(b)):q()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var f=this.maxImageSize,f=Math.min(1,Math.min(f/Math.max(1,d)),f/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",g,l,d*f,b*f,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(k,
@@ -11018,27 +11021,27 @@ EditorUi.prototype.doSetSketchMode=function(b){if(Editor.sketchMode!=b){var c=fu
b.substring(0,5)&&(c=mxResources.get("action"));return c};EditorUi.prototype.handleCustomLink=function(b){if(Graph.isPageLink(b)){var c=b.indexOf(",");if(b=this.getPageById(b.substring(c+1)))this.selectPage(b);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(b)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){Editor.pagesVisible=
mxSettings.settings.pagesVisible;ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(b){b.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(f){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",
mxUtils.bind(this,function(b,c){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);else{var d=c.getProperty("customFonts");this.menus.customFonts=d;mxSettings.setCustomFonts(d)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());
-mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.addListener("gridColorChanged",mxUtils.bind(this,function(b,c){mxSettings.setGridColor(this.editor.graph.view.gridColor,
-Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(b,c){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",
-mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(b,c,d){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(b,
-d){try{this.spinner.stop();var f=this.createImageDataUri(b,c,"png"),e=parseInt(d.getAttribute("width")),g=parseInt(d.getAttribute("height"));this.writeImageToClipboard(f,e,g,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(x){this.handleError(x)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null!=d?d:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(p){this.handleError(p)}};
-EditorUi.prototype.writeImageToClipboard=function(b,c,d,e){var f=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":f,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+d+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](e)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var f=mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),e=mxUtils.getXml(d.encodeCells(f));
-mxUtils.setTextContent(b,encodeURIComponent(e));c?(d.removeCells(f,!1),d.lastPasteXml=null):(d.lastPasteXml=e,d.pasteCounter=0);b.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var b=null;if(Editor.enableNativeCipboard){var c=this.editor.graph;c.isSelectionEmpty()||(b=mxUtils.sortCells(c.getExportableCells(c.model.getTopmostCells(c.getSelectionCells()))),c=mxUtils.getXml(c.encodeCells(b)),navigator.clipboard.writeText(c))}return b};EditorUi.prototype.pasteXml=
-function(b,c,d,e){var f=this.editor.graph,g=null;f.lastPasteXml==b?f.pasteCounter++:(f.lastPasteXml=b,f.pasteCounter=0);var l=f.pasteCounter*f.gridSize;if(d||this.isCompatibleString(b))g=this.importXml(b,l,l),f.setSelectionCells(g);else if(c&&1==f.getSelectionCount()){l=f.getStartEditingCell(f.getSelectionCell(),e);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==f.getCurrentCellStyle(l)[mxConstants.STYLE_SHAPE])f.setCellStyles(mxConstants.STYLE_IMAGE,b,[l]);else{f.model.beginUpdate();try{f.labelChanged(l,
-b),Graph.isLink(b)&&f.setLinkForCell(l,b)}finally{f.model.endUpdate()}}f.setSelectionCell(l)}else g=f.getInsertPoint(),f.isMouseInsertPoint()&&(l=0,f.lastPasteXml==b&&0<f.pasteCounter&&f.pasteCounter--),g=this.insertTextAt(b,g.x+l,g.y+l,!0),f.setSelectionCells(g);f.isSelectionEmpty()||(f.scrollCellToVisible(f.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(f.view.getState(f.getSelectionCell())));return g};EditorUi.prototype.pasteCells=function(b,c,d,e){if(!mxEvent.isConsumed(b)){var f=
-c,g=!1;if(d&&null!=b.clipboardData&&b.clipboardData.getData){var l=b.clipboardData.getData("text/plain"),k=!1;if(null!=l&&0<l.length&&"%3CmxGraphModel%3E"==l.substring(0,18)){var m=decodeURIComponent(l);this.isCompatibleString(m)&&(k=!0,l=m)}k=k?null:b.clipboardData.getData("text/html");null!=k&&0<k.length?(f=this.parseHtmlData(k),g="text/plain"!=f.getAttribute("data-type")):null!=l&&0<l.length&&(f=document.createElement("div"),mxUtils.setTextContent(f,k))}l=f.getElementsByTagName("span");if(null!=
-l&&0<l.length&&"application/vnd.lucid.chart.objects"===l[0].getAttribute("data-lucid-type"))d=l[0].getAttribute("data-lucid-content"),null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(b){var c=this.editor.graph;c.lastPasteXml==b?c.pasteCounter++:(c.lastPasteXml=b,c.pasteCounter=0);var d=c.pasteCounter*c.gridSize;c.setSelectionCells(this.importXml(b,d,d));c.scrollCellToVisible(c.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),mxEvent.consume(b));else{g=
-g?f.innerHTML:mxUtils.trim(null==f.innerText?mxUtils.getTextContent(f):f.innerText);k=!1;try{var n=g.lastIndexOf("%3E");0<=n&&n<g.length-3&&(g=g.substring(0,n+3))}catch(B){}try{l=f.getElementsByTagName("span"),m=null!=l&&0<l.length?mxUtils.trim(decodeURIComponent(l[0].textContent)):decodeURIComponent(g),this.isCompatibleString(m)&&(k=!0,g=m)}catch(B){}try{if(null!=g&&0<g.length){this.pasteXml(g,e,k,b);try{mxEvent.consume(b)}catch(B){}}else if(!d){var p=this.editor.graph;p.lastPasteXml=null;p.pasteCounter=
-0}}catch(B){this.handleError(B)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var c=null,d=0;d<b.length;d++)mxEvent.addListener(b[d],"dragleave",function(b){null!=c&&(c.parentNode.removeChild(c),c=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[d],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(c=
-this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[d],"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<b.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b)):this.openFiles(b.dataTransfer.files,!0);else{var d=this.extractGraphModelFromEvent(b);
-if(null==d){var f=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=f&&(10==document.documentMode||11==document.documentMode?d=f.getData("Text"):(d=null,d=0<=mxUtils.indexOf(f.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(f.types,"text/html")?f.getData("text/html"):null,null!=d&&0<d.length?(f=document.createElement("div"),f.innerHTML=this.editor.graph.sanitizeHtml(d),f=f.getElementsByTagName("img"),0<f.length&&(d=f[0].getAttribute("src"))):0<=mxUtils.indexOf(f.types,
-"text/plain")&&(d=f.getData("text/plain"))),null!=d&&(Editor.isPngDataUrl(d)?(d=Editor.extractGraphModelFromPng(d),null!=d&&0<d.length&&this.openLocalFile(d,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(d)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(d))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),null,!0)})):/^https?:\/\//.test(d)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(d):
-window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(d)))))}else this.openLocalFile(d,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var c=0,d=0,f,e;if(null==b){e=document.body;var g=document.documentElement;f=(e.clientWidth||g.clientWidth)-3;e=Math.max(e.clientHeight||0,g.clientHeight)-3}else c=b.offsetTop,d=b.offsetLeft,f=b.clientWidth,e=b.clientHeight;g=document.createElement("div");
-g.style.zIndex=mxPopupMenu.prototype.zIndex+2;g.style.border="3px dotted rgb(254, 137, 12)";g.style.pointerEvents="none";g.style.position="absolute";g.style.top=c+"px";g.style.left=d+"px";g.style.width=Math.max(0,f-3)+"px";g.style.height=Math.max(0,e-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(g):document.body.appendChild(g);return g};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var c=this.editor.extractGraphModel(b.documentElement);
-b=[];if(null!=c){var d=new mxCodec(c.ownerDocument),f=new mxGraphModel;d.decode(c,f);c=f.getChildAt(f.getRoot(),0);for(d=0;d<f.getChildCount(c);d++)b.push(f.getChildAt(c,d))}return b};EditorUi.prototype.openFileHandle=function(b,c,d,e,g){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var f=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+
-".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(x){this.handleError(x,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,e)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(d,mxUtils.bind(this,function(b){this.spinner.stop();f(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,
-mxUtils.bind(this,function(b){this.spinner.stop();f(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(d,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?f(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,
-c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,e)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,b,d.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
+mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.editor.graph.view.defaultDarkGridColor=mxSettings.getGridColor(!0);this.editor.graph.view.defaultGridColor=mxSettings.getGridColor(!1);
+this.addListener("gridColorChanged",mxUtils.bind(this,function(b,c){mxSettings.setGridColor(this.editor.graph.view.gridColor,Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(b,c){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),
+this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(b,c,d){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&
+this.editor.exportToCanvas(mxUtils.bind(this,function(b,d){try{this.spinner.stop();var f=this.createImageDataUri(b,c,"png"),e=parseInt(d.getAttribute("width")),g=parseInt(d.getAttribute("height"));this.writeImageToClipboard(f,e,g,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(x){this.handleError(x)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null!=d?d:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,
+null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(p){this.handleError(p)}};EditorUi.prototype.writeImageToClipboard=function(b,c,d,e){var f=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":f,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+d+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](e)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var f=
+mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),e=mxUtils.getXml(d.encodeCells(f));mxUtils.setTextContent(b,encodeURIComponent(e));c?(d.removeCells(f,!1),d.lastPasteXml=null):(d.lastPasteXml=e,d.pasteCounter=0);b.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var b=null;if(Editor.enableNativeCipboard){var c=this.editor.graph;c.isSelectionEmpty()||(b=mxUtils.sortCells(c.getExportableCells(c.model.getTopmostCells(c.getSelectionCells()))),
+c=mxUtils.getXml(c.encodeCells(b)),navigator.clipboard.writeText(c))}return b};EditorUi.prototype.pasteXml=function(b,c,d,e){var f=this.editor.graph,g=null;f.lastPasteXml==b?f.pasteCounter++:(f.lastPasteXml=b,f.pasteCounter=0);var l=f.pasteCounter*f.gridSize;if(d||this.isCompatibleString(b))g=this.importXml(b,l,l),f.setSelectionCells(g);else if(c&&1==f.getSelectionCount()){l=f.getStartEditingCell(f.getSelectionCell(),e);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==f.getCurrentCellStyle(l)[mxConstants.STYLE_SHAPE])f.setCellStyles(mxConstants.STYLE_IMAGE,
+b,[l]);else{f.model.beginUpdate();try{f.labelChanged(l,b),Graph.isLink(b)&&f.setLinkForCell(l,b)}finally{f.model.endUpdate()}}f.setSelectionCell(l)}else g=f.getInsertPoint(),f.isMouseInsertPoint()&&(l=0,f.lastPasteXml==b&&0<f.pasteCounter&&f.pasteCounter--),g=this.insertTextAt(b,g.x+l,g.y+l,!0),f.setSelectionCells(g);f.isSelectionEmpty()||(f.scrollCellToVisible(f.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(f.view.getState(f.getSelectionCell())));return g};EditorUi.prototype.pasteCells=
+function(b,c,d,e){if(!mxEvent.isConsumed(b)){var f=c,g=!1;if(d&&null!=b.clipboardData&&b.clipboardData.getData){var l=b.clipboardData.getData("text/plain"),k=!1;if(null!=l&&0<l.length&&"%3CmxGraphModel%3E"==l.substring(0,18)){var m=decodeURIComponent(l);this.isCompatibleString(m)&&(k=!0,l=m)}k=k?null:b.clipboardData.getData("text/html");null!=k&&0<k.length?(f=this.parseHtmlData(k),g="text/plain"!=f.getAttribute("data-type")):null!=l&&0<l.length&&(f=document.createElement("div"),mxUtils.setTextContent(f,
+k))}l=f.getElementsByTagName("span");if(null!=l&&0<l.length&&"application/vnd.lucid.chart.objects"===l[0].getAttribute("data-lucid-type"))d=l[0].getAttribute("data-lucid-content"),null!=d&&0<d.length&&(this.convertLucidChart(d,mxUtils.bind(this,function(b){var c=this.editor.graph;c.lastPasteXml==b?c.pasteCounter++:(c.lastPasteXml=b,c.pasteCounter=0);var d=c.pasteCounter*c.gridSize;c.setSelectionCells(this.importXml(b,d,d));c.scrollCellToVisible(c.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),
+mxEvent.consume(b));else{g=g?f.innerHTML:mxUtils.trim(null==f.innerText?mxUtils.getTextContent(f):f.innerText);k=!1;try{var n=g.lastIndexOf("%3E");0<=n&&n<g.length-3&&(g=g.substring(0,n+3))}catch(B){}try{l=f.getElementsByTagName("span"),m=null!=l&&0<l.length?mxUtils.trim(decodeURIComponent(l[0].textContent)):decodeURIComponent(g),this.isCompatibleString(m)&&(k=!0,g=m)}catch(B){}try{if(null!=g&&0<g.length){this.pasteXml(g,e,k,b);try{mxEvent.consume(b)}catch(B){}}else if(!d){var p=this.editor.graph;
+p.lastPasteXml=null;p.pasteCounter=0}}catch(B){this.handleError(B)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var c=null,d=0;d<b.length;d++)mxEvent.addListener(b[d],"dragleave",function(b){null!=c&&(c.parentNode.removeChild(c),c=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[d],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==c&&(!mxClient.IS_IE||10<document.documentMode&&
+12>document.documentMode)&&(c=this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[d],"drop",mxUtils.bind(this,function(b){null!=c&&(c.parentNode.removeChild(c),c=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<b.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b)):this.openFiles(b.dataTransfer.files,!0);
+else{var d=this.extractGraphModelFromEvent(b);if(null==d){var f=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=f&&(10==document.documentMode||11==document.documentMode?d=f.getData("Text"):(d=null,d=0<=mxUtils.indexOf(f.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(f.types,"text/html")?f.getData("text/html"):null,null!=d&&0<d.length?(f=document.createElement("div"),f.innerHTML=this.editor.graph.sanitizeHtml(d),f=f.getElementsByTagName("img"),0<f.length&&
+(d=f[0].getAttribute("src"))):0<=mxUtils.indexOf(f.types,"text/plain")&&(d=f.getData("text/plain"))),null!=d&&(Editor.isPngDataUrl(d)?(d=Editor.extractGraphModelFromPng(d),null!=d&&0<d.length&&this.openLocalFile(d,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(d)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(d))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),null,!0)})):/^https?:\/\//.test(d)&&(null==this.getCurrentFile()?
+window.location.hash="#U"+encodeURIComponent(d):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(d)))))}else this.openLocalFile(d,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var c=0,d=0,f,e;if(null==b){e=document.body;var g=document.documentElement;f=(e.clientWidth||g.clientWidth)-3;e=Math.max(e.clientHeight||0,g.clientHeight)-3}else c=b.offsetTop,d=b.offsetLeft,
+f=b.clientWidth,e=b.clientHeight;g=document.createElement("div");g.style.zIndex=mxPopupMenu.prototype.zIndex+2;g.style.border="3px dotted rgb(254, 137, 12)";g.style.pointerEvents="none";g.style.position="absolute";g.style.top=c+"px";g.style.left=d+"px";g.style.width=Math.max(0,f-3)+"px";g.style.height=Math.max(0,e-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(g):document.body.appendChild(g);return g};EditorUi.prototype.stringToCells=function(b){b=
+mxUtils.parseXml(b);var c=this.editor.extractGraphModel(b.documentElement);b=[];if(null!=c){var d=new mxCodec(c.ownerDocument),f=new mxGraphModel;d.decode(c,f);c=f.getChildAt(f.getRoot(),0);for(d=0;d<f.getChildCount(c);d++)b.push(f.getChildAt(c,d))}return b};EditorUi.prototype.openFileHandle=function(b,c,d,e,g){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var f=mxUtils.bind(this,
+function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(x){this.handleError(x,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,e)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(d,mxUtils.bind(this,function(b){this.spinner.stop();
+f(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,mxUtils.bind(this,function(b){this.spinner.stop();f(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(d,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?f(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&
+(c=c.substring(0,c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,e)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,e);try{this.loadLibrary(new LocalLibrary(this,b,d.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
b.indexOf("PK"))this.importZipFile(d,mxUtils.bind(this,function(b){this.spinner.stop();f(b)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(b,c,e)}));else{if("image/png"==d.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==d.type){var k=Editor.extractGraphModelFromPdf(b);null!=k&&(g=null,e=!0,b=k)}this.spinner.stop();this.openLocalFile(b,c,e,g,null!=g?d:null)}}};EditorUi.prototype.openFiles=function(b,c){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=
0;d<b.length;d++)mxUtils.bind(this,function(b){var d=new FileReader;d.onload=mxUtils.bind(this,function(d){try{this.openFileHandle(d.target.result,b.name,b,c)}catch(u){this.handleError(u)}});d.onerror=mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b);window.openFile=null});"image"!==b.type.substring(0,5)&&"application/pdf"!==b.type||"image/svg"===b.type.substring(0,9)?d.readAsText(b):d.readAsDataURL(b)})(b[d])};EditorUi.prototype.openLocalFile=function(b,c,d,e,g){var f=this.getCurrentFile(),
k=mxUtils.bind(this,function(){window.openFile=null;if(null==c&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var f=mxUtils.parseXml(b);null!=f&&(this.editor.setGraphXml(f.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,b,c||this.defaultFilename,d,e,g))});if(null!=b&&0<b.length)null==f||!f.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)?k():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=e)&&null!=f&&f.isModified()?this.confirm(mxResources.get("allChangesLost"),
@@ -11056,22 +11059,22 @@ this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(urlParams.modified)))
"data:image/svg+xml;utf8,"==b.substring(0,24)&&(b=b.substring(24)),null!=b&&("%"==b.charAt(0)?b=decodeURIComponent(b):"<"!=b.charAt(0)&&(b=Graph.decompress(b)))}catch(na){}return b});if("json"==urlParams.proto){var p=!1;try{l=JSON.parse(l)}catch(ba){l=null}try{if(null==l)return;if("dialog"==l.action){this.showError(null!=l.titleKey?mxResources.get(l.titleKey):l.title,null!=l.messageKey?mxResources.get(l.messageKey):l.message,null!=l.buttonKey?mxResources.get(l.buttonKey):l.button);null!=l.modified&&
(this.editor.modified=l.modified);return}if("layout"==l.action){this.executeLayoutList(l.layouts);return}if("prompt"==l.action){this.spinner.stop();var q=new FilenameDialog(this,l.defaultValue||"",null!=l.okKey?mxResources.get(l.okKey):l.ok,function(b){null!=b?k.postMessage(JSON.stringify({event:"prompt",value:b,message:l}),"*"):k.postMessage(JSON.stringify({event:"prompt-cancel",message:l}),"*")},null!=l.titleKey?mxResources.get(l.titleKey):l.title);this.showDialog(q.container,300,80,!0,!1);q.init();
return}if("draft"==l.action){var t=n(l.xml);this.spinner.stop();q=new DraftDialog(this,mxResources.get("draftFound",[l.name||this.defaultFilename]),t,mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"edit",message:l}),"*")}),mxUtils.bind(this,function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"discard",message:l}),"*")}),l.editKey?mxResources.get(l.editKey):null,l.discardKey?mxResources.get(l.discardKey):null,l.ignore?mxUtils.bind(this,
-function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:l}),"*")}):null);this.showDialog(q.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));try{q.init()}catch(ba){k.postMessage(JSON.stringify({event:"draft",error:ba.toString(),message:l}),"*")}return}if("template"==l.action){this.spinner.stop();var u=1==l.enableRecent,v=1==l.enableSearch,E=1==l.enableCustomTemp;if("1"==urlParams.newTempDlg&&!l.templatesOnly&&null!=
+function(){this.hideDialog();k.postMessage(JSON.stringify({event:"draft",result:"ignore",message:l}),"*")}):null);this.showDialog(q.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));try{q.init()}catch(ba){k.postMessage(JSON.stringify({event:"draft",error:ba.toString(),message:l}),"*")}return}if("template"==l.action){this.spinner.stop();var u=1==l.enableRecent,v=1==l.enableSearch,F=1==l.enableCustomTemp;if("1"==urlParams.newTempDlg&&!l.templatesOnly&&null!=
l.callback){var x=this.getCurrentUser(),I=new TemplatesDialog(this,function(b,c,d){b=b||this.emptyDiagramXml;k.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d.url,libs:d.libs,builtIn:null!=d.info&&null!=d.info.custContentId,message:l}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=x?x.id:null,u?mxUtils.bind(this,function(b,c,d){this.remoteInvoke("getRecentDiagrams",[d],null,b,c)}):null,v?mxUtils.bind(this,function(b,
-c,d,f){this.remoteInvoke("searchDiagrams",[b,f],null,c,d)}):null,mxUtils.bind(this,function(b,c,d){this.remoteInvoke("getFileContent",[b.url],null,c,d)}),null,E?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(I.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=new NewDialog(this,!1,l.templatesOnly?!1:null!=l.callback,mxUtils.bind(this,function(c,d,f,e){c=c||this.emptyDiagramXml;null!=
+c,d,f){this.remoteInvoke("searchDiagrams",[b,f],null,c,d)}):null,mxUtils.bind(this,function(b,c,d){this.remoteInvoke("getFileContent",[b.url],null,c,d)}),null,F?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(I.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=new NewDialog(this,!1,l.templatesOnly?!1:null!=l.callback,mxUtils.bind(this,function(c,d,f,e){c=c||this.emptyDiagramXml;null!=
l.callback?k.postMessage(JSON.stringify({event:"template",xml:c,blank:c==this.emptyDiagramXml,name:d,tempUrl:f,libs:e,builtIn:!0,message:l}),"*"):(b(c,g,c!=this.emptyDiagramXml,l.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,v?mxUtils.bind(this,function(b,c){this.remoteInvoke("searchDiagrams",[b,null],null,c,function(){c(null,
-"Network Error!")})}):null,mxUtils.bind(this,function(b,c,d){k.postMessage(JSON.stringify({event:"template",docUrl:b,info:c,name:d}),"*")}),null,null,E?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==l.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==l.action){var L=this.getDiagramTextContent();k.postMessage(JSON.stringify({event:"textContent",
+"Network Error!")})}):null,mxUtils.bind(this,function(b,c,d){k.postMessage(JSON.stringify({event:"template",docUrl:b,info:c,name:d}),"*")}),null,null,F?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==l.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==l.action){var L=this.getDiagramTextContent();k.postMessage(JSON.stringify({event:"textContent",
data:L,message:l}),"*");return}if("status"==l.action){null!=l.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(l.messageKey))):null!=l.message&&this.editor.setStatus(mxUtils.htmlEntities(l.message));null!=l.modified&&(this.editor.modified=l.modified);return}if("spinner"==l.action){var M=null!=l.messageKey?mxResources.get(l.messageKey):l.message;null==l.show||l.show?this.spinner.spin(document.body,M):this.spinner.stop();return}if("exit"==l.action){this.actions.get("exit").funct();
-return}if("viewport"==l.action){null!=l.viewport&&(this.embedViewport=l.viewport);return}if("snapshot"==l.action){this.sendEmbeddedSvgExport(!0);return}if("export"==l.action){if("png"==l.format||"xmlpng"==l.format){if(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin)){var N=null!=l.xml?l.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var O=this.editor.graph,J=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();
-var c=this.createLoadMessage("export");c.format=l.format;c.message=l;c.data=b;c.xml=N;k.postMessage(JSON.stringify(c),"*")}),T=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==l.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(N)));O!=this.editor.graph&&O.container.parentNode.removeChild(O.container);J(b)}),K=l.pageId||(null!=this.pages?l.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var U=mxUtils.bind(this,
-function(){if(null!=this.pages&&this.currentPage.getId()!=K){var b=O.getGlobalVariable;O=this.createTemporaryGraph(O.getStylesheet());for(var c,d=0;d<this.pages.length;d++)if(this.pages[d].getId()==K){c=this.updatePageRoot(this.pages[d]);break}null==c&&(c=this.currentPage);O.getGlobalVariable=function(d){return"page"==d?c.getName():"pagenumber"==d?1:b.apply(this,arguments)};document.body.appendChild(O.container);O.model.setRoot(c.root)}if(null!=l.layerIds){for(var f=O.model,e=f.getChildCells(f.getRoot()),
-g={},d=0;d<l.layerIds.length;d++)g[l.layerIds[d]]=!0;for(d=0;d<e.length;d++)f.setVisible(e[d],g[e[d].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){T(b.toDataURL("image/png"))}),l.width,null,l.background,mxUtils.bind(this,function(){T(null)}),null,null,l.scale,l.transparent,l.shadow,null,O,l.border,null,l.grid,l.keepTheme)});null!=l.xml&&0<l.xml.length?(d=!0,this.setFileData(N),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(U)},0):U()):
-U()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==l.format?"1":"0")+(null!=K?"&pageId="+K:"")+(null!=l.layerIds&&0<l.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:l.layerIds})):"")+(null!=l.scale?"&scale="+l.scale:"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?J("data:image/png;base64,"+b.getText()):T(null)}),mxUtils.bind(this,function(){T(null)}))}}else U=mxUtils.bind(this,function(){var b=
+return}if("viewport"==l.action){null!=l.viewport&&(this.embedViewport=l.viewport);return}if("snapshot"==l.action){this.sendEmbeddedSvgExport(!0);return}if("export"==l.action){if("png"==l.format||"xmlpng"==l.format){if(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin)){var N=null!=l.xml?l.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var P=this.editor.graph,K=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();
+var c=this.createLoadMessage("export");c.format=l.format;c.message=l;c.data=b;c.xml=N;k.postMessage(JSON.stringify(c),"*")}),T=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==l.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(N)));P!=this.editor.graph&&P.container.parentNode.removeChild(P.container);K(b)}),J=l.pageId||(null!=this.pages?l.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var U=mxUtils.bind(this,
+function(){if(null!=this.pages&&this.currentPage.getId()!=J){var b=P.getGlobalVariable;P=this.createTemporaryGraph(P.getStylesheet());for(var c,d=0;d<this.pages.length;d++)if(this.pages[d].getId()==J){c=this.updatePageRoot(this.pages[d]);break}null==c&&(c=this.currentPage);P.getGlobalVariable=function(d){return"page"==d?c.getName():"pagenumber"==d?1:b.apply(this,arguments)};document.body.appendChild(P.container);P.model.setRoot(c.root)}if(null!=l.layerIds){for(var f=P.model,e=f.getChildCells(f.getRoot()),
+g={},d=0;d<l.layerIds.length;d++)g[l.layerIds[d]]=!0;for(d=0;d<e.length;d++)f.setVisible(e[d],g[e[d].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){T(b.toDataURL("image/png"))}),l.width,null,l.background,mxUtils.bind(this,function(){T(null)}),null,null,l.scale,l.transparent,l.shadow,null,P,l.border,null,l.grid,l.keepTheme)});null!=l.xml&&0<l.xml.length?(d=!0,this.setFileData(N),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(U)},0):U()):
+U()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==l.format?"1":"0")+(null!=J?"&pageId="+J:"")+(null!=l.layerIds&&0<l.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:l.layerIds})):"")+(null!=l.scale?"&scale="+l.scale:"")+"&base64=1&xml="+encodeURIComponent(N))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?K("data:image/png;base64,"+b.getText()):T(null)}),mxUtils.bind(this,function(){T(null)}))}}else U=mxUtils.bind(this,function(){var b=
this.createLoadMessage("export");b.message=l;if("html2"==l.format||"html"==l.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var c=this.getXmlFileData();b.xml=mxUtils.getXml(c);b.data=this.getFileData(null,null,!0,null,null,null,c);b.format=l.format}else if("html"==l.format)c=this.editor.getGraphXml(),b.data=this.getHtml(c,this.editor.graph),b.xml=mxUtils.getXml(c),b.format=l.format;else{mxSvgCanvas2D.prototype.foAltText=null;c=null!=l.background?l.background:this.editor.graph.background;
c==mxConstants.NONE&&(c=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var d=mxUtils.bind(this,function(c){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(c);k.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==l.format)(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin))&&this.getEmbeddedSvg(b.xml,this.editor.graph,null,!0,d,null,null,l.embedImages,c,l.scale,
l.border,l.shadow,l.keepTheme);else if(null==l.spin&&null==l.spinKey||this.spinner.spin(document.body,null!=l.spinKey?mxResources.get(l.spinKey):l.spin))this.editor.graph.setEnabled(!1),c=this.editor.graph.getSvg(c,l.scale,l.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||l.shadow,null,l.keepTheme),(this.editor.graph.shadowVisible||l.shadow)&&this.editor.graph.addSvgShadow(c),this.embedFonts(c,mxUtils.bind(this,function(b){l.embedImages||null==l.embedImages?this.editor.convertImages(b,
mxUtils.bind(this,function(b){d(mxUtils.getXml(b))})):d(mxUtils.getXml(b))}));return}k.postMessage(JSON.stringify(b),"*")}),null!=l.xml&&0<l.xml.length?(d=!0,this.setFileData(l.xml),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(U)},0):U()):U();return}if("load"==l.action){p=l.toSketch;f=1==l.autosave;this.hideDialog();null!=l.modified&&null==urlParams.modified&&(urlParams.modified=l.modified);null!=l.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=
-l.saveAndExit);null!=l.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=l.noSaveBtn);if(null!=l.rough){var P=Editor.sketchMode;this.doSetSketchMode(l.rough);P!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=l.dark&&(P=Editor.darkMode,this.doSetDarkMode(l.dark),P!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=l.border&&(this.embedExportBorder=l.border);null!=l.background&&(this.embedExportBackground=l.background);null!=l.viewport&&
+l.saveAndExit);null!=l.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=l.noSaveBtn);if(null!=l.rough){var O=Editor.sketchMode;this.doSetSketchMode(l.rough);O!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=l.dark&&(O=Editor.darkMode,this.doSetDarkMode(l.dark),O!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=l.border&&(this.embedExportBorder=l.border);null!=l.background&&(this.embedExportBackground=l.background);null!=l.viewport&&
(this.embedViewport=l.viewport);this.embedExitPoint=null;if(null!=l.rect){var S=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=l.rect.top+"px";this.diagramContainer.style.left=l.rect.left+"px";this.diagramContainer.style.height=l.rect.height+"px";this.diagramContainer.style.width=l.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";m=mxUtils.bind(this,function(){var b=this.editor.graph,c=b.maxFitScale;
b.maxFitScale=l.maxFitScale;b.fit(2*S);b.maxFitScale=c;b.container.scrollTop-=2*S;b.container.scrollLeft-=2*S;this.fireEvent(new mxEventObject("editInlineStart","data",[l]))})}null!=l.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=l.noExitBtn);null!=l.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,l.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=
t);try{l.libs&&this.sidebar.showEntries(l.libs)}catch(ba){}l=null!=l.xmlpng?this.extractGraphModelFromPng(l.xmlpng):null!=l.descriptor?l.descriptor:l.xml}else{if("merge"==l.action){var Y=this.getCurrentFile();null!=Y&&(t=n(l.xml),null!=t&&""!=t&&Y.mergeFile(new LocalFile(this,t),function(){k.postMessage(JSON.stringify({event:"merge",message:l}),"*")},function(b){k.postMessage(JSON.stringify({event:"merge",message:l,error:b}),"*")}))}else"remoteInvokeReady"==l.action?this.handleRemoteInvokeReady(k):
@@ -11085,22 +11088,22 @@ urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";k.postMe
mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
b.appendChild(c),d=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),d="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,d),c.setAttribute("title",d),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),d=c);d.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right=
"atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};
-EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var l in b[f].config)g[l]=b[f].config[l];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],l={};if(0<d.length){var k={},n=null,A=null,z=null,B=null,y=null,C=null,G="whiteSpace=wrap;html=1;",
-F=null,D=null,E="",H="auto",I="auto",L=null,M=null,N=40,O=40,J=100,T=0,K=this.editor.graph;K.getGraphBounds();for(var U=function(){null!=c?c(la):(K.setSelectionCells(la),K.scrollCellToVisible(K.getSelectionCell()))},P=K.getFreeInsertPoint(),S=P.x,Y=P.y,P=Y,ka=null,aa="auto",D=null,ba=[],na=null,pa=null,fa=0;fa<d.length&&"#"==d[fa].charAt(0);){b=d[fa];for(fa++;fa<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[fa].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[fa].substring(1)),fa++;if("#"!=b.charAt(1)){var ca=
-b.indexOf(":");if(0<ca){var Q=mxUtils.trim(b.substring(1,ca)),V=mxUtils.trim(b.substring(ca+1));"label"==Q?ka=K.sanitizeHtml(V):"labelname"==Q&&0<V.length&&"-"!=V?y=V:"labels"==Q&&0<V.length&&"-"!=V?C=JSON.parse(V):"style"==Q?A=V:"parentstyle"==Q?G=V:"stylename"==Q&&0<V.length&&"-"!=V?B=V:"styles"==Q&&0<V.length&&"-"!=V?z=JSON.parse(V):"vars"==Q&&0<V.length&&"-"!=V?n=JSON.parse(V):"identity"==Q&&0<V.length&&"-"!=V?F=V:"parent"==Q&&0<V.length&&"-"!=V?D=V:"namespace"==Q&&0<V.length&&"-"!=V?E=V:"width"==
-Q?H=V:"height"==Q?I=V:"left"==Q&&0<V.length?L=V:"top"==Q&&0<V.length?M=V:"ignore"==Q?pa=V.split(","):"connect"==Q?ba.push(JSON.parse(V)):"link"==Q?na=V:"padding"==Q?T=parseFloat(V):"edgespacing"==Q?N=parseFloat(V):"nodespacing"==Q?O=parseFloat(V):"levelspacing"==Q?J=parseFloat(V):"layout"==Q&&(aa=V)}}}if(null==d[fa])throw Error(mxResources.get("invalidOrMissingFile"));for(var ia=this.editor.csvToArray(d[fa]),Q=ca=null,V=[],W=0;W<ia.length;W++)F==ia[W]&&(ca=W),D==ia[W]&&(Q=W),V.push(mxUtils.trim(ia[W]).replace(/[^a-z0-9]+/ig,
-"_").replace(/^\d+/,"").replace(/_+$/,""));null==ka&&(ka="%"+V[0]+"%");if(null!=ba)for(var Z=0;Z<ba.length;Z++)null==k[ba[Z].to]&&(k[ba[Z].to]={});F=[];for(W=fa+1;W<d.length;W++){var ha=this.editor.csvToArray(d[W]);if(null==ha){var ra=40<d[W].length?d[W].substring(0,40)+"...":d[W];throw Error(ra+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ha.length&&F.push(ha)}K.model.beginUpdate();try{for(W=0;W<F.length;W++){var ha=F[W],X=null,ea=null!=ca?E+ha[ca]:null;null!=ea&&(X=K.model.getCell(ea));
-var d=null!=X,ga=new mxCell(ka,new mxGeometry(S,P,0,0),A||"whiteSpace=wrap;html=1;");ga.vertex=!0;ga.id=ea;for(var ja=0;ja<ha.length;ja++)K.setAttributeForCell(ga,V[ja],ha[ja]);if(null!=y&&null!=C){var oa=C[ga.getAttribute(y)];null!=oa&&K.labelChanged(ga,oa)}if(null!=B&&null!=z){var ua=z[ga.getAttribute(B)];null!=ua&&(ga.style=ua)}K.setAttributeForCell(ga,"placeholders","1");ga.style=K.replacePlaceholders(ga,ga.style,n);d?(K.model.setValue(X,ga.value),K.model.setStyle(X,ga.style),0>mxUtils.indexOf(g,
-X)&&g.push(X),K.fireEvent(new mxEventObject("cellsInserted","cells",[X]))):K.fireEvent(new mxEventObject("cellsInserted","cells",[ga]));X=ga;if(!d)for(Z=0;Z<ba.length;Z++)k[ba[Z].to][X.getAttribute(ba[Z].to)]=X;null!=na&&"link"!=na&&(K.setLinkForCell(X,X.getAttribute(na)),K.setAttributeForCell(X,na,null));var R=this.editor.graph.getPreferredSizeForCell(X),D=null!=Q?K.model.getCell(E+ha[Q]):null;if(X.vertex){ra=null!=D?0:S;fa=null!=D?0:Y;null!=L&&null!=X.getAttribute(L)&&(X.geometry.x=ra+parseFloat(X.getAttribute(L)));
-null!=M&&null!=X.getAttribute(M)&&(X.geometry.y=fa+parseFloat(X.getAttribute(M)));var da="@"==H.charAt(0)?X.getAttribute(H.substring(1)):null;X.geometry.width=null!=da&&"auto"!=da?parseFloat(X.getAttribute(H.substring(1))):"auto"==H||"auto"==da?R.width+T:parseFloat(H);var ma="@"==I.charAt(0)?X.getAttribute(I.substring(1)):null;X.geometry.height=null!=ma&&"auto"!=ma?parseFloat(ma):"auto"==I||"auto"==ma?R.height+T:parseFloat(I);P+=X.geometry.height+O}d?(null==l[ea]&&(l[ea]=[]),l[ea].push(X)):(e.push(X),
-null!=D?(D.style=K.replacePlaceholders(D,G,n),K.addCell(X,D),f.push(D)):g.push(K.addCell(X)))}for(W=0;W<f.length;W++)da="@"==H.charAt(0)?f[W].getAttribute(H.substring(1)):null,ma="@"==I.charAt(0)?f[W].getAttribute(I.substring(1)):null,"auto"!=H&&"auto"!=da||"auto"!=I&&"auto"!=ma||K.updateGroupBounds([f[W]],T,!0);for(var sa=g.slice(),la=g.slice(),Z=0;Z<ba.length;Z++)for(var qa=ba[Z],W=0;W<e.length;W++){var X=e[W],ta=mxUtils.bind(this,function(b,c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=
-e.split(","),f=0;f<e.length;f++){var g=k[d.to][e[f]];if(null!=g){var l=d.label;null!=d.fromlabel&&(l=(c.getAttribute(d.fromlabel)||"")+(l||""));null!=d.sourcelabel&&(l=K.replacePlaceholders(c,d.sourcelabel,n)+(l||""));null!=d.tolabel&&(l=(l||"")+(g.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(l=(l||"")+K.replacePlaceholders(g,d.targetlabel,n));var m="target"==d.placeholders==!d.invert?g:b,m=null!=d.style?K.replacePlaceholders(m,d.style,n):K.createCurrentEdgeStyle(),l=K.insertEdge(null,null,
-l||"",d.invert?g:b,d.invert?b:g,m);if(null!=d.labels)for(m=0;m<d.labels.length;m++){var p=d.labels[m],q=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");q.vertex=!0;q.connectable=!1;q.geometry.relative=!0;null!=p.placeholders&&(q.value=K.replacePlaceholders("target"==p.placeholders==!d.invert?g:b,q.value,n));if(null!=p.dx||null!=p.dy)q.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(q)}la.push(l);mxUtils.remove(d.invert?b:g,
-sa)}}});ta(X,X,qa);if(null!=l[X.id])for(ja=0;ja<l[X.id].length;ja++)ta(X,l[X.id][ja],qa)}if(null!=pa)for(W=0;W<e.length;W++)for(X=e[W],ja=0;ja<pa.length;ja++)K.setAttributeForCell(X,mxUtils.trim(pa[ja]),null);if(0<g.length){var va=new mxParallelEdgeLayout(K);va.spacing=N;va.checkOverlap=!0;var xa=function(){0<va.spacing&&va.execute(K.getDefaultParent());for(var b=0;b<g.length;b++){var c=K.getCellGeometry(g[b]);c.x=Math.round(K.snap(c.x));c.y=Math.round(K.snap(c.y));"auto"==H&&(c.width=Math.round(K.snap(c.width)));
-"auto"==I&&(c.height=Math.round(K.snap(c.height)))}};if("["==aa.charAt(0)){var Ba=U;K.view.validate();this.executeLayoutList(JSON.parse(aa),function(){xa();Ba()});U=null}else if("circle"==aa){var wa=new mxCircleLayout(K);wa.disableEdgeStyle=!1;wa.resetEdges=!1;var za=wa.isVertexIgnored;wa.isVertexIgnored=function(b){return za.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){wa.execute(K.getDefaultParent());xa()},!0,U);U=null}else if("horizontaltree"==aa||"verticaltree"==
-aa||"auto"==aa&&la.length==2*g.length-1&&1==sa.length){K.view.validate();var Ca=new mxCompactTreeLayout(K,"horizontaltree"==aa);Ca.levelDistance=O;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(K.getDefaultParent(),0<sa.length?sa[0]:null)},!0,U);U=null}else if("horizontalflow"==aa||"verticalflow"==aa||"auto"==aa&&1==sa.length){K.view.validate();var ya=new mxHierarchicalLayout(K,"horizontalflow"==aa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ya.intraCellSpacing=
-O;ya.parallelEdgeSpacing=N;ya.interRankCellSpacing=J;ya.disableEdgeStyle=!1;this.executeLayout(function(){ya.execute(K.getDefaultParent(),la);K.moveCells(la,S,Y)},!0,U);U=null}else if("organic"==aa||"auto"==aa&&la.length>g.length){K.view.validate();var Aa=new mxFastOrganicLayout(K);Aa.forceConstant=3*O;Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Da=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Da.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Aa.execute(K.getDefaultParent());
-xa()},!0,U);U=null}}this.hideDialog()}finally{K.model.endUpdate()}null!=U&&U()}}catch(Ea){this.handleError(Ea)}};EditorUi.prototype.getSearch=function(b){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var d="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(c+=d+e+"="+urlParams[e],d="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var c=0<b.indexOf("?")?1:0;
+EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),f=0;f<b.length;f++){var g=new window[b[f].layout](d);if(null!=b[f].config)for(var l in b[f].config)g[l]=b[f].config[l];this.executeLayout(function(){g.execute(d.getDefaultParent(),0==e.length?null:e)},f==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],f=[],g=[],l={};if(0<d.length){var k={},n=null,A=null,z=null,B=null,y=null,C=null,D="whiteSpace=wrap;html=1;",
+G=null,E=null,F="",H="auto",I="auto",L=null,M=null,N=40,P=40,K=100,T=0,J=this.editor.graph;J.getGraphBounds();for(var U=function(){null!=c?c(la):(J.setSelectionCells(la),J.scrollCellToVisible(J.getSelectionCell()))},O=J.getFreeInsertPoint(),S=O.x,Y=O.y,O=Y,ka=null,aa="auto",E=null,ba=[],na=null,pa=null,fa=0;fa<d.length&&"#"==d[fa].charAt(0);){b=d[fa];for(fa++;fa<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[fa].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[fa].substring(1)),fa++;if("#"!=b.charAt(1)){var ca=
+b.indexOf(":");if(0<ca){var Q=mxUtils.trim(b.substring(1,ca)),V=mxUtils.trim(b.substring(ca+1));"label"==Q?ka=J.sanitizeHtml(V):"labelname"==Q&&0<V.length&&"-"!=V?y=V:"labels"==Q&&0<V.length&&"-"!=V?C=JSON.parse(V):"style"==Q?A=V:"parentstyle"==Q?D=V:"stylename"==Q&&0<V.length&&"-"!=V?B=V:"styles"==Q&&0<V.length&&"-"!=V?z=JSON.parse(V):"vars"==Q&&0<V.length&&"-"!=V?n=JSON.parse(V):"identity"==Q&&0<V.length&&"-"!=V?G=V:"parent"==Q&&0<V.length&&"-"!=V?E=V:"namespace"==Q&&0<V.length&&"-"!=V?F=V:"width"==
+Q?H=V:"height"==Q?I=V:"left"==Q&&0<V.length?L=V:"top"==Q&&0<V.length?M=V:"ignore"==Q?pa=V.split(","):"connect"==Q?ba.push(JSON.parse(V)):"link"==Q?na=V:"padding"==Q?T=parseFloat(V):"edgespacing"==Q?N=parseFloat(V):"nodespacing"==Q?P=parseFloat(V):"levelspacing"==Q?K=parseFloat(V):"layout"==Q&&(aa=V)}}}if(null==d[fa])throw Error(mxResources.get("invalidOrMissingFile"));for(var ia=this.editor.csvToArray(d[fa]),Q=ca=null,V=[],W=0;W<ia.length;W++)G==ia[W]&&(ca=W),E==ia[W]&&(Q=W),V.push(mxUtils.trim(ia[W]).replace(/[^a-z0-9]+/ig,
+"_").replace(/^\d+/,"").replace(/_+$/,""));null==ka&&(ka="%"+V[0]+"%");if(null!=ba)for(var Z=0;Z<ba.length;Z++)null==k[ba[Z].to]&&(k[ba[Z].to]={});G=[];for(W=fa+1;W<d.length;W++){var ha=this.editor.csvToArray(d[W]);if(null==ha){var ra=40<d[W].length?d[W].substring(0,40)+"...":d[W];throw Error(ra+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ha.length&&G.push(ha)}J.model.beginUpdate();try{for(W=0;W<G.length;W++){var ha=G[W],X=null,ea=null!=ca?F+ha[ca]:null;null!=ea&&(X=J.model.getCell(ea));
+var d=null!=X,ga=new mxCell(ka,new mxGeometry(S,O,0,0),A||"whiteSpace=wrap;html=1;");ga.vertex=!0;ga.id=ea;for(var ja=0;ja<ha.length;ja++)J.setAttributeForCell(ga,V[ja],ha[ja]);if(null!=y&&null!=C){var oa=C[ga.getAttribute(y)];null!=oa&&J.labelChanged(ga,oa)}if(null!=B&&null!=z){var ua=z[ga.getAttribute(B)];null!=ua&&(ga.style=ua)}J.setAttributeForCell(ga,"placeholders","1");ga.style=J.replacePlaceholders(ga,ga.style,n);d?(J.model.setValue(X,ga.value),J.model.setStyle(X,ga.style),0>mxUtils.indexOf(g,
+X)&&g.push(X),J.fireEvent(new mxEventObject("cellsInserted","cells",[X]))):J.fireEvent(new mxEventObject("cellsInserted","cells",[ga]));X=ga;if(!d)for(Z=0;Z<ba.length;Z++)k[ba[Z].to][X.getAttribute(ba[Z].to)]=X;null!=na&&"link"!=na&&(J.setLinkForCell(X,X.getAttribute(na)),J.setAttributeForCell(X,na,null));var R=this.editor.graph.getPreferredSizeForCell(X),E=null!=Q?J.model.getCell(F+ha[Q]):null;if(X.vertex){ra=null!=E?0:S;fa=null!=E?0:Y;null!=L&&null!=X.getAttribute(L)&&(X.geometry.x=ra+parseFloat(X.getAttribute(L)));
+null!=M&&null!=X.getAttribute(M)&&(X.geometry.y=fa+parseFloat(X.getAttribute(M)));var da="@"==H.charAt(0)?X.getAttribute(H.substring(1)):null;X.geometry.width=null!=da&&"auto"!=da?parseFloat(X.getAttribute(H.substring(1))):"auto"==H||"auto"==da?R.width+T:parseFloat(H);var ma="@"==I.charAt(0)?X.getAttribute(I.substring(1)):null;X.geometry.height=null!=ma&&"auto"!=ma?parseFloat(ma):"auto"==I||"auto"==ma?R.height+T:parseFloat(I);O+=X.geometry.height+P}d?(null==l[ea]&&(l[ea]=[]),l[ea].push(X)):(e.push(X),
+null!=E?(E.style=J.replacePlaceholders(E,D,n),J.addCell(X,E),f.push(E)):g.push(J.addCell(X)))}for(W=0;W<f.length;W++)da="@"==H.charAt(0)?f[W].getAttribute(H.substring(1)):null,ma="@"==I.charAt(0)?f[W].getAttribute(I.substring(1)):null,"auto"!=H&&"auto"!=da||"auto"!=I&&"auto"!=ma||J.updateGroupBounds([f[W]],T,!0);for(var sa=g.slice(),la=g.slice(),Z=0;Z<ba.length;Z++)for(var qa=ba[Z],W=0;W<e.length;W++){var X=e[W],ta=mxUtils.bind(this,function(b,c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=
+e.split(","),f=0;f<e.length;f++){var g=k[d.to][e[f]];if(null!=g){var l=d.label;null!=d.fromlabel&&(l=(c.getAttribute(d.fromlabel)||"")+(l||""));null!=d.sourcelabel&&(l=J.replacePlaceholders(c,d.sourcelabel,n)+(l||""));null!=d.tolabel&&(l=(l||"")+(g.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(l=(l||"")+J.replacePlaceholders(g,d.targetlabel,n));var m="target"==d.placeholders==!d.invert?g:b,m=null!=d.style?J.replacePlaceholders(m,d.style,n):J.createCurrentEdgeStyle(),l=J.insertEdge(null,null,
+l||"",d.invert?g:b,d.invert?b:g,m);if(null!=d.labels)for(m=0;m<d.labels.length;m++){var p=d.labels[m],q=new mxCell(p.label||m,new mxGeometry(null!=p.x?p.x:0,null!=p.y?p.y:0,0,0),"resizable=0;html=1;");q.vertex=!0;q.connectable=!1;q.geometry.relative=!0;null!=p.placeholders&&(q.value=J.replacePlaceholders("target"==p.placeholders==!d.invert?g:b,q.value,n));if(null!=p.dx||null!=p.dy)q.geometry.offset=new mxPoint(null!=p.dx?p.dx:0,null!=p.dy?p.dy:0);l.insert(q)}la.push(l);mxUtils.remove(d.invert?b:g,
+sa)}}});ta(X,X,qa);if(null!=l[X.id])for(ja=0;ja<l[X.id].length;ja++)ta(X,l[X.id][ja],qa)}if(null!=pa)for(W=0;W<e.length;W++)for(X=e[W],ja=0;ja<pa.length;ja++)J.setAttributeForCell(X,mxUtils.trim(pa[ja]),null);if(0<g.length){var va=new mxParallelEdgeLayout(J);va.spacing=N;va.checkOverlap=!0;var xa=function(){0<va.spacing&&va.execute(J.getDefaultParent());for(var b=0;b<g.length;b++){var c=J.getCellGeometry(g[b]);c.x=Math.round(J.snap(c.x));c.y=Math.round(J.snap(c.y));"auto"==H&&(c.width=Math.round(J.snap(c.width)));
+"auto"==I&&(c.height=Math.round(J.snap(c.height)))}};if("["==aa.charAt(0)){var Ba=U;J.view.validate();this.executeLayoutList(JSON.parse(aa),function(){xa();Ba()});U=null}else if("circle"==aa){var wa=new mxCircleLayout(J);wa.disableEdgeStyle=!1;wa.resetEdges=!1;var za=wa.isVertexIgnored;wa.isVertexIgnored=function(b){return za.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){wa.execute(J.getDefaultParent());xa()},!0,U);U=null}else if("horizontaltree"==aa||"verticaltree"==
+aa||"auto"==aa&&la.length==2*g.length-1&&1==sa.length){J.view.validate();var Ca=new mxCompactTreeLayout(J,"horizontaltree"==aa);Ca.levelDistance=P;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(J.getDefaultParent(),0<sa.length?sa[0]:null)},!0,U);U=null}else if("horizontalflow"==aa||"verticalflow"==aa||"auto"==aa&&1==sa.length){J.view.validate();var ya=new mxHierarchicalLayout(J,"horizontalflow"==aa?mxConstants.DIRECTION_WEST:mxConstants.DIRECTION_NORTH);ya.intraCellSpacing=
+P;ya.parallelEdgeSpacing=N;ya.interRankCellSpacing=K;ya.disableEdgeStyle=!1;this.executeLayout(function(){ya.execute(J.getDefaultParent(),la);J.moveCells(la,S,Y)},!0,U);U=null}else if("organic"==aa||"auto"==aa&&la.length>g.length){J.view.validate();var Aa=new mxFastOrganicLayout(J);Aa.forceConstant=3*P;Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Da=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Da.apply(this,arguments)||0>mxUtils.indexOf(g,b)};this.executeLayout(function(){Aa.execute(J.getDefaultParent());
+xa()},!0,U);U=null}}this.hideDialog()}finally{J.model.endUpdate()}null!=U&&U()}}catch(Ea){this.handleError(Ea)}};EditorUi.prototype.getSearch=function(b){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var d="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(c+=d+e+"="+urlParams[e],d="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(b){b=null!=b?b:window.location.pathname;var c=0<b.indexOf("?")?1:0;
if("1"==urlParams.offline)b+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(d,e)&&(b=0==c?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],c++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,d,e,g){b=new LinkDialog(this,b,c,d,!0,e,g);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=function(b){var c=1;null==this.drive&&
"function"!==typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;null!=this.notion&&c++;b&&isLocalStorage&&"1"==urlParams.browser&&c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();this.menus.get("viewPanels").setEnabled(c);
this.menus.get("viewZoom").setEnabled(c);var d=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!d);this.actions.get("print").setEnabled(!d);this.menus.get("exportAs").setEnabled(!d);this.menus.get("embed").setEnabled(!d);d="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(d);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(d),this.menus.get("newLibrary").setEnabled(d));
@@ -11125,7 +11128,7 @@ msgMarkers:b.msgMarkers};null!=d?e.error={errResp:d}:null!=c&&(e.resp=c);this.re
k.push(function(b){d(null,b||"Unkown Error")}),this[e].apply(this,k);else{var n=this[e].apply(this,k);d([n])}}else d(null,"Invalid Call: "+e+" is not found.")}catch(A){d(null,"Invalid Call: An error occurred, "+A.message)}};EditorUi.prototype.openDatabase=function(b,c){if(null==this.database){var d=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB;if(null!=d)try{var e=d.open("database",2);e.onupgradeneeded=function(b){try{var d=e.result;1>b.oldVersion&&d.createObjectStore("objects",{keyPath:"key"});
2>b.oldVersion&&(d.createObjectStore("files",{keyPath:"title"}),d.createObjectStore("filesInfo",{keyPath:"title"}),EditorUi.migrateStorageFiles=isLocalStorage)}catch(u){null!=c&&c(u)}};e.onsuccess=mxUtils.bind(this,function(c){var d=e.result;this.database=d;EditorUi.migrateStorageFiles&&(StorageFile.migrate(d),EditorUi.migrateStorageFiles=!1);"app.diagrams.net"!=location.host||this.drawioMigrationStarted||(this.drawioMigrationStarted=!0,this.getDatabaseItem(".drawioMigrated3",mxUtils.bind(this,function(b){if(!b||
"1"==urlParams.forceMigration){var c=document.createElement("iframe");c.style.display="none";c.setAttribute("src","https://www.draw.io?embed=1&proto=json&forceMigration="+urlParams.forceMigration);document.body.appendChild(c);var d=!0,e=!1,f,g=0,l=mxUtils.bind(this,function(){e=!0;this.setDatabaseItem(".drawioMigrated3",!0);c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"setMigratedFlag"}),"*")}),k=mxUtils.bind(this,function(){g++;m()}),m=mxUtils.bind(this,function(){try{if(g>=
-f.length)l();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):k()}),k)}}catch(E){console.log(E)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],k,k,["filesInfo","files"])}catch(E){console.log(E)}});
+f.length)l();else{var b=f[g];StorageFile.getFileContent(this,b,mxUtils.bind(this,function(d){null==d||".scratchpad"==b&&d==this.emptyLibraryXml?c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFile",functionArgs:[b]}),"*"):k()}),k)}}catch(F){console.log(F)}}),n=mxUtils.bind(this,function(b){try{this.setDatabaseItem(null,[{title:b.title,size:b.data.length,lastModified:Date.now(),type:b.isLib?"L":"F"},{title:b.title,data:b.data}],k,k,["filesInfo","files"])}catch(F){console.log(F)}});
b=mxUtils.bind(this,function(b){try{if(b.source==c.contentWindow){var g={};try{g=JSON.parse(b.data)}catch(H){}"init"==g.event?(c.contentWindow.postMessage(JSON.stringify({action:"remoteInvokeReady"}),"*"),c.contentWindow.postMessage(JSON.stringify({action:"remoteInvoke",funtionName:"getLocalStorageFileNames"}),"*")):"remoteInvokeResponse"!=g.event||e||(d?null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?(f=g.resp[0],d=!1,m()):l():null!=g.resp&&0<g.resp.length&&null!=g.resp[0]?n(g.resp[0]):k())}}catch(H){console.log(H)}});
window.addEventListener("message",b)}})));b(d);d.onversionchange=function(){d.close()}});e.onerror=c;e.onblocked=function(){}}catch(q){null!=c&&c(q)}else null!=c&&c()}else b(this.database)};EditorUi.prototype.setDatabaseItem=function(b,c,d,e,g){this.openDatabase(mxUtils.bind(this,function(f){try{g=g||"objects";Array.isArray(g)||(g=[g],b=[b],c=[c]);var k=f.transaction(g,"readwrite");k.oncomplete=d;k.onerror=e;for(f=0;f<g.length;f++)k.objectStore(g[f]).put(null!=b&&null!=b[f]?{key:b[f],data:c[f]}:c[f])}catch(v){null!=
e&&e(v)}}),e)};EditorUi.prototype.removeDatabaseItem=function(b,c,d,e){this.openDatabase(mxUtils.bind(this,function(f){e=e||"objects";Array.isArray(e)||(e=[e],b=[b]);f=f.transaction(e,"readwrite");f.oncomplete=c;f.onerror=d;for(var g=0;g<e.length;g++)f.objectStore(e[g])["delete"](b[g])}),d)};EditorUi.prototype.getDatabaseItem=function(b,c,d,e){this.openDatabase(mxUtils.bind(this,function(f){try{e=e||"objects";var g=f.transaction([e],"readonly").objectStore(e).get(b);g.onsuccess=function(){c(g.result)};
@@ -11135,30 +11138,30 @@ b?b.commentsSaveNeeded():!1};EditorUi.prototype.getComments=function(b,c){var d=
function(b,c){var d=this.getCurrentFile();return null!=d?d.newComment(b,c):new DrawioComment(this,null,b,Date.now(),Date.now(),!1,c)};EditorUi.prototype.isRevisionHistorySupported=function(){var b=this.getCurrentFile();return null!=b&&b.isRevisionHistorySupported()};EditorUi.prototype.getRevisions=function(b,c){var d=this.getCurrentFile();null!=d&&d.getRevisions?d.getRevisions(b,c):c({message:mxResources.get("unknownError")})};EditorUi.prototype.isRevisionHistoryEnabled=function(){var b=this.getCurrentFile();
return null!=b&&(b.constructor==DriveFile&&b.isEditable()||b.constructor==DropboxFile)};EditorUi.prototype.getServiceName=function(){return"draw.io"};EditorUi.prototype.addRemoteServiceSecurityCheck=function(b){b.setRequestHeader("Content-Language","da, mi, en, de-DE")};EditorUi.prototype.loadUrl=function(b,c,d,e,g,k,n,v){EditorUi.logEvent("SHOULD NOT BE CALLED: loadUrl");return this.editor.loadUrl(b,c,d,e,g,k,n,v)};EditorUi.prototype.loadFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: loadFonts");
return this.editor.loadFonts(b)};EditorUi.prototype.createSvgDataUri=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: createSvgDataUri");return Editor.createSvgDataUri(b)};EditorUi.prototype.embedCssFonts=function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: embedCssFonts");return this.editor.embedCssFonts(b,c)};EditorUi.prototype.embedExtFonts=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: embedExtFonts");return this.editor.embedExtFonts(b)};EditorUi.prototype.exportToCanvas=function(b,
-c,d,e,g,k,n,v,x,A,z,B,y,C,G,F){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,d,e,g,k,n,v,x,A,z,B,y,C,G,F)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,d,e)};EditorUi.prototype.convertImageToDataUri=
+c,d,e,g,k,n,v,x,A,z,B,y,C,D,G){EditorUi.logEvent("SHOULD NOT BE CALLED: exportToCanvas");return this.editor.exportToCanvas(b,c,d,e,g,k,n,v,x,A,z,B,y,C,D,G)};EditorUi.prototype.createImageUrlConverter=function(){EditorUi.logEvent("SHOULD NOT BE CALLED: createImageUrlConverter");return this.editor.createImageUrlConverter()};EditorUi.prototype.convertImages=function(b,c,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImages");return this.editor.convertImages(b,c,d,e)};EditorUi.prototype.convertImageToDataUri=
function(b,c){EditorUi.logEvent("SHOULD NOT BE CALLED: convertImageToDataUri");return this.editor.convertImageToDataUri(b,c)};EditorUi.prototype.base64Encode=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: base64Encode");return Editor.base64Encode(b)};EditorUi.prototype.updateCRC=function(b,c,d,e){EditorUi.logEvent("SHOULD NOT BE CALLED: updateCRC");return Editor.updateCRC(b,c,d,e)};EditorUi.prototype.crc32=function(b){EditorUi.logEvent("SHOULD NOT BE CALLED: crc32");return Editor.crc32(b)};
EditorUi.prototype.writeGraphModelToPng=function(b,c,d,e,g){EditorUi.logEvent("SHOULD NOT BE CALLED: writeGraphModelToPng");return Editor.writeGraphModelToPng(b,c,d,e,g)};EditorUi.prototype.getLocalStorageFileNames=function(){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;for(var b=[],c=0;c<localStorage.length;c++){var d=localStorage.key(c),e=localStorage.getItem(d);if(0<d.length&&(".scratchpad"==d||"."!=d.charAt(0))&&0<e.length){var g="<mxfile "===
e.substring(0,8)||"<?xml"===e.substring(0,5)||"\x3c!--[if IE]>"===e.substring(0,12),e="<mxlibrary>"===e.substring(0,11);(g||e)&&b.push(d)}}return b};EditorUi.prototype.getLocalStorageFile=function(b){if("1"==localStorage.getItem(".localStorageMigrated")&&"1"!=urlParams.forceMigration)return null;var c=localStorage.getItem(b);return{title:b,data:c,isLib:"<mxlibrary>"===c.substring(0,11)}};EditorUi.prototype.setMigratedFlag=function(){localStorage.setItem(".localStorageMigrated","1")}})();
var CommentsWindow=function(b,e,d,c,g,k){function n(){for(var b=B.getElementsByTagName("div"),c=0,d=0;d<b.length;d++)"none"!=b[d].style.display&&b[d].parentNode==B&&c++;y.style.display=0==c?"block":"none"}function f(b,c,d,e){function f(){c.removeChild(l);c.removeChild(m);k.style.display="block";g.style.display="block"}x={div:c,comment:b,saveCallback:d,deleteOnCancel:e};var g=c.querySelector(".geCommentTxt"),k=c.querySelector(".geCommentActionsList"),l=document.createElement("textarea");l.className=
"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var p=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),n()):f();x=null});p.className="geCommentEditBtn";m.appendChild(p);var y=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);x=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(y.click(),mxEvent.consume(b)):27==b.keyCode&&(p.click(),mxEvent.consume(b)))}));y.focus();y.className="geCommentEditBtn gePrimaryBtn";m.appendChild(y);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function l(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
-[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function m(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function p(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function q(b){b.style.border="";b.removeChild(b.busyImg)}function t(c,d,e,g,k){function E(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
-"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});A.appendChild(f);e&&(f.style.display="none")}function C(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=G;b(c);return{pdiv:e,replies:d}}function M(d,e,k,l,n){function y(){m(E);c.addReply(v,function(b){v.id=b;c.replies.push(v);q(E);k&&k()},function(c){B();p(E);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},l,n)}function B(){f(v,E,function(b){y()},!0)}var u=C().pdiv,v=b.newComment(d,b.getCurrentUser());v.pCommentId=c.id;null==c.replies&&(c.replies=[]);var E=t(v,c.replies,u,g+1);e?B():y()}if(k||!c.isResolved){y.style.display="none";var G=document.createElement("div");G.className="geCommentContainer";G.setAttribute("data-commentId",c.id);G.style.marginLeft=20*g+5+"px";c.isResolved&&!Editor.isDarkMode()&&(G.style.backgroundColor="ghostWhite");
-var z=document.createElement("div");z.className="geCommentHeader";var D=document.createElement("img");D.className="geCommentUserImg";D.src=c.user.pictureUrl||Editor.userImage;z.appendChild(D);D=document.createElement("div");D.className="geCommentHeaderTxt";z.appendChild(D);var N=document.createElement("div");N.className="geCommentUsername";mxUtils.write(N,c.user.displayName||"");D.appendChild(N);N=document.createElement("div");N.className="geCommentDate";N.setAttribute("data-commentId",c.id);l(c,
-N);D.appendChild(N);G.appendChild(z);z=document.createElement("div");z.className="geCommentTxt";mxUtils.write(z,c.content||"");G.appendChild(z);c.isLocked&&(G.style.opacity="0.5");z=document.createElement("div");z.className="geCommentActions";var A=document.createElement("ul");A.className="geCommentActionsList";z.appendChild(A);u||c.isLocked||0!=g&&!v||E(mxResources.get("reply"),function(){M("",!0)},c.isResolved);D=b.getCurrentUser();null==D||D.id!=c.user.id||u||c.isLocked||(E(mxResources.get("edit"),
-function(){function d(){f(c,G,function(){m(G);c.editComment(c.content,function(){q(G)},function(c){p(G);d();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},c.isResolved),E(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){m(G);c.deleteComment(function(b){if(!0===b){b=G.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var e=G.querySelectorAll(".geCommentAction");for(b=
-0;b<e.length;b++)e[b].parentNode.removeChild(e[b]);q(G);G.style.opacity="0.5"}else{e=C(c).replies;for(b=0;b<e.length;b++)B.removeChild(e[b]);for(b=0;b<d.length;b++)if(d[b]==c){d.splice(b,1);break}y.style.display=0==B.getElementsByTagName("div").length?"block":"none"}},function(c){p(G);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=g||E(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
-b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=C(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);F||(f[k].style.display="none")}n()}c.isResolved?M(mxResources.get("reOpened")+": ",!0,
-d,!1,!0):M(mxResources.get("markedAsResolved"),!1,d,!0)});G.appendChild(z);null!=e?B.insertBefore(G,e.nextSibling):B.appendChild(G);for(e=0;null!=c.replies&&e<c.replies.length;e++)z=c.replies[e],z.isResolved=c.isResolved,t(z,c.replies,null,g+1,k);null!=x&&(x.comment.id==c.id?(k=c.content,c.content=x.comment.content,f(c,G,x.saveCallback,x.deleteOnCancel),c.content=k):null==x.comment.id&&x.comment.pCommentId==c.id&&(B.appendChild(x.div),f(x.comment,x.div,x.saveCallback,x.deleteOnCancel)));return G}}
+[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function m(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function p(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function q(b){b.style.border="";b.removeChild(b.busyImg)}function t(c,d,e,g,k){function F(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
+"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});A.appendChild(f);e&&(f.style.display="none")}function C(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=D;b(c);return{pdiv:e,replies:d}}function M(d,e,k,l,n){function y(){m(F);c.addReply(v,function(b){v.id=b;c.replies.push(v);q(F);k&&k()},function(c){B();p(F);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},l,n)}function B(){f(v,F,function(b){y()},!0)}var u=C().pdiv,v=b.newComment(d,b.getCurrentUser());v.pCommentId=c.id;null==c.replies&&(c.replies=[]);var F=t(v,c.replies,u,g+1);e?B():y()}if(k||!c.isResolved){y.style.display="none";var D=document.createElement("div");D.className="geCommentContainer";D.setAttribute("data-commentId",c.id);D.style.marginLeft=20*g+5+"px";c.isResolved&&!Editor.isDarkMode()&&(D.style.backgroundColor="ghostWhite");
+var E=document.createElement("div");E.className="geCommentHeader";var N=document.createElement("img");N.className="geCommentUserImg";N.src=c.user.pictureUrl||Editor.userImage;E.appendChild(N);N=document.createElement("div");N.className="geCommentHeaderTxt";E.appendChild(N);var z=document.createElement("div");z.className="geCommentUsername";mxUtils.write(z,c.user.displayName||"");N.appendChild(z);z=document.createElement("div");z.className="geCommentDate";z.setAttribute("data-commentId",c.id);l(c,
+z);N.appendChild(z);D.appendChild(E);E=document.createElement("div");E.className="geCommentTxt";mxUtils.write(E,c.content||"");D.appendChild(E);c.isLocked&&(D.style.opacity="0.5");E=document.createElement("div");E.className="geCommentActions";var A=document.createElement("ul");A.className="geCommentActionsList";E.appendChild(A);u||c.isLocked||0!=g&&!v||F(mxResources.get("reply"),function(){M("",!0)},c.isResolved);N=b.getCurrentUser();null==N||N.id!=c.user.id||u||c.isLocked||(F(mxResources.get("edit"),
+function(){function d(){f(c,D,function(){m(D);c.editComment(c.content,function(){q(D)},function(c){p(D);d();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}d()},c.isResolved),F(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){m(D);c.deleteComment(function(b){if(!0===b){b=D.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var e=D.querySelectorAll(".geCommentAction");for(b=
+0;b<e.length;b++)e[b].parentNode.removeChild(e[b]);q(D);D.style.opacity="0.5"}else{e=C(c).replies;for(b=0;b<e.length;b++)B.removeChild(e[b]);for(b=0;b<d.length;b++)if(d[b]==c){d.splice(b,1);break}y.style.display=0==B.getElementsByTagName("div").length?"block":"none"}},function(c){p(D);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=g||F(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
+b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=C(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);G||(f[k].style.display="none")}n()}c.isResolved?M(mxResources.get("reOpened")+": ",!0,
+d,!1,!0):M(mxResources.get("markedAsResolved"),!1,d,!0)});D.appendChild(E);null!=e?B.insertBefore(D,e.nextSibling):B.appendChild(D);for(e=0;null!=c.replies&&e<c.replies.length;e++)E=c.replies[e],E.isResolved=c.isResolved,t(E,c.replies,null,g+1,k);null!=x&&(x.comment.id==c.id?(k=c.content,c.content=x.comment.content,f(c,D,x.saveCallback,x.deleteOnCancel),c.content=k):null==x.comment.id&&x.comment.pCommentId==c.id&&(B.appendChild(x.div),f(x.comment,x.div,x.saveCallback,x.deleteOnCancel)));return D}}
var u=!b.canComment(),v=b.canReplyToReplies(),x=null,A=document.createElement("div");A.className="geCommentsWin";A.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var z=EditorUi.compactUi?"26px":"30px",B=document.createElement("div");B.className="geCommentsList";B.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";B.style.bottom=parseInt(z)+7+"px";A.appendChild(B);var y=document.createElement("span");y.style.cssText="display:none;padding-top:10px;text-align:center;";
-mxUtils.write(y,mxResources.get("noCommentsFound"));var C=document.createElement("div");C.className="geToolbarContainer geCommentsToolbar";C.style.height=z;C.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";C.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";z=document.createElement("a");z.className="geButton";if(!u){var G=z.cloneNode();G.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';G.setAttribute("title",mxResources.get("create")+
-"...");mxEvent.addListener(G,"click",function(c){function d(){f(e,g,function(c){m(g);b.addComment(c,function(b){c.id=b;D.push(c);q(g)},function(c){p(g);d();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=b.newComment("",b.getCurrentUser()),g=t(e,D,null,0);d();c.preventDefault();mxEvent.consume(c)});C.appendChild(G)}G=z.cloneNode();G.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';G.setAttribute("title",mxResources.get("showResolved"));
-var F=!1;Editor.isDarkMode()&&(G.style.filter="invert(100%)");mxEvent.addListener(G,"click",function(b){this.className=(F=!F)?"geButton geCheckedBtn":"geButton";E();b.preventDefault();mxEvent.consume(b)});C.appendChild(G);b.commentsRefreshNeeded()&&(G=z.cloneNode(),G.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',G.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(G.style.filter="invert(100%)"),mxEvent.addListener(G,"click",function(b){E();
-b.preventDefault();mxEvent.consume(b)}),C.appendChild(G));b.commentsSaveNeeded()&&(z=z.cloneNode(),z.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',z.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(z.style.filter="invert(100%)"),mxEvent.addListener(z,"click",function(b){k();b.preventDefault();mxEvent.consume(b)}),C.appendChild(z));A.appendChild(C);var D=[],E=mxUtils.bind(this,function(){this.hasError=!1;if(null!=x)try{x.div=x.div.cloneNode(!0);
+mxUtils.write(y,mxResources.get("noCommentsFound"));var C=document.createElement("div");C.className="geToolbarContainer geCommentsToolbar";C.style.height=z;C.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";C.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";z=document.createElement("a");z.className="geButton";if(!u){var D=z.cloneNode();D.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';D.setAttribute("title",mxResources.get("create")+
+"...");mxEvent.addListener(D,"click",function(c){function d(){f(e,g,function(c){m(g);b.addComment(c,function(b){c.id=b;E.push(c);q(g)},function(c){p(g);d();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var e=b.newComment("",b.getCurrentUser()),g=t(e,E,null,0);d();c.preventDefault();mxEvent.consume(c)});C.appendChild(D)}D=z.cloneNode();D.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';D.setAttribute("title",mxResources.get("showResolved"));
+var G=!1;Editor.isDarkMode()&&(D.style.filter="invert(100%)");mxEvent.addListener(D,"click",function(b){this.className=(G=!G)?"geButton geCheckedBtn":"geButton";F();b.preventDefault();mxEvent.consume(b)});C.appendChild(D);b.commentsRefreshNeeded()&&(D=z.cloneNode(),D.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',D.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(D.style.filter="invert(100%)"),mxEvent.addListener(D,"click",function(b){F();
+b.preventDefault();mxEvent.consume(b)}),C.appendChild(D));b.commentsSaveNeeded()&&(z=z.cloneNode(),z.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',z.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(z.style.filter="invert(100%)"),mxEvent.addListener(z,"click",function(b){k();b.preventDefault();mxEvent.consume(b)}),C.appendChild(z));A.appendChild(C);var E=[],F=mxUtils.bind(this,function(){this.hasError=!1;if(null!=x)try{x.div=x.div.cloneNode(!0);
var c=x.div.querySelector(".geCommentEditTxtArea"),d=x.div.querySelector(".geCommentEditBtns");x.comment.content=c.value;c.parentNode.removeChild(c);d.parentNode.removeChild(d)}catch(M){b.handleError(M)}B.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
-new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});B.innerHTML="";B.appendChild(y);y.style.display="block";D=b;for(b=0;b<D.length;b++)c(D[b].replies),t(D[b],D,null,0,F);null!=x&&null==x.comment.id&&null==x.comment.pCommentId&&(B.appendChild(x.div),f(x.comment,x.div,x.saveCallback,x.deleteOnCancel))},mxUtils.bind(this,function(b){B.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
-": "+b.message:""));this.hasError=!0})):B.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});E();this.refreshComments=E;C=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(l(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=B.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var f=c[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<D.length;e++)b(D[e])}});setInterval(C,6E4);this.refreshCommentsTime=C;this.window=
+new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});B.innerHTML="";B.appendChild(y);y.style.display="block";E=b;for(b=0;b<E.length;b++)c(E[b].replies),t(E[b],E,null,0,G);null!=x&&null==x.comment.id&&null==x.comment.pCommentId&&(B.appendChild(x.div),f(x.comment,x.div,x.saveCallback,x.deleteOnCancel))},mxUtils.bind(this,function(b){B.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
+": "+b.message:""));this.hasError=!0})):B.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});F();this.refreshComments=F;C=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(l(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=B.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var f=c[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<E.length;e++)b(E[e])}});setInterval(C,6E4);this.refreshCommentsTime=C;this.window=
new mxWindow(mxResources.get("comments"),A,e,d,c,g,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
document.body.clientWidth||document.documentElement.clientWidth)-this.table.clientWidth));c=Math.max(0,Math.min(c,d-this.table.clientHeight-48));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};var H=mxUtils.bind(this,function(){var b=this.window.getX(),c=this.window.getY();this.window.setLocation(b,c)});mxEvent.addListener(window,"resize",H);this.destroy=function(){mxEvent.removeListener(window,"resize",H);this.window.destroy()}},ConfirmDialog=function(b,e,d,
c,g,k,n,f,l,m,p){var q=document.createElement("div");q.style.textAlign="center";p=null!=p?p:44;var t=document.createElement("div");t.style.padding="6px";t.style.overflow="auto";t.style.maxHeight=p+"px";t.style.lineHeight="1.2em";mxUtils.write(t,e);q.appendChild(t);null!=m&&(t=document.createElement("div"),t.style.padding="6px 0 6px 0",e=document.createElement("img"),e.setAttribute("src",m),t.appendChild(e),q.appendChild(t));m=document.createElement("div");m.style.textAlign="center";m.style.whiteSpace=
@@ -11335,19 +11338,19 @@ f=!0:b=m}catch(z){f=!0}}}else/\.pdf$/i.test(d.title)?(l=Editor.extractGraphModel
b.responseText,d.title+this.extension,!0)):null!=e&&e({message:mxResources.get("errorLoadingFile")}))}catch(B){if(null!=e)e(B);else throw B;}}),d.title):c(f?new LocalFile(this.ui,b,d.title,!0):new DriveFile(this.ui,b,d))}}catch(z){if(null!=e)e(z);else throw z;}}),mxUtils.bind(this,function(b,c){if(m<this.maxRetries&&null!=c&&403==c.getStatus())m++,window.setTimeout(p,2*m*this.coolOff*(1+.1*(Math.random()-.5)));else if(null!=e)e(b);else throw b;}),null!=d.mimeType&&"image/"==d.mimeType.substring(0,
6)&&"image/svg"!=d.mimeType.substring(0,9)||/\.png$/i.test(d.title)||/\.jpe?g$/i.test(d.title)||/\.pdf$/i.test(d.title),null,null,null,f)});p()}}catch(q){if(null!=e)e(q);else throw q;}};DriveClient.prototype.saveFile=function(b,c,e,k,n,f,l,m,p){try{var d=0;b.saveLevel=1;var g=mxUtils.bind(this,function(c){if(null!=k)k(c);else throw c;try{if(!b.isConflict(c)){var d="sl_"+b.saveLevel+"-error_"+(b.getErrorMessage(c)||"unknown");null!=c&&null!=c.error&&null!=c.error.code&&(d+="-code_"+c.error.code);EditorUi.logEvent({category:"ERROR-SAVE-FILE-"+
b.getHash()+"-rev_"+b.desc.headRevisionId+"-mod_"+b.desc.modifiedDate+"-size_"+b.getSize()+"-mime_"+b.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(b.isAutosave()?"":"-noauto")+(b.changeListenerEnabled?"":"-nolisten")+(b.inConflictState?"-conflict":"")+(b.invalidChecksum?"-invalid":""),action:d,label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=b.sync?"-client_"+b.sync.clientId:"-nosync")})}}catch(H){}}),u=mxUtils.bind(this,function(b){g(b);try{EditorUi.logError(b.message,null,null,
-b)}catch(E){}});if(b.isEditable()&&null!=b.desc){var v=(new Date).getTime(),x=b.desc.etag,A=b.desc.modifiedDate,z=b.desc.headRevisionId,B=this.ui.useCanvasForExport&&/(\.png)$/i.test(b.getTitle());f=null!=f?f:!1;var y=null,C=!1,G={mimeType:b.desc.mimeType,title:b.getTitle()};if(this.isGoogleRealtimeMimeType(G.mimeType))G.mimeType=this.xmlMimeType,y=b.desc,C=c=!0;else if("application/octet-stream"==G.mimeType||"1"==urlParams["override-mime"]&&G.mimeType!=this.xmlMimeType)G.mimeType=this.xmlMimeType;
-var F=mxUtils.bind(this,function(k,n,q){try{b.saveLevel=3;b.constructor==DriveFile&&(null==m&&(m=[]),null==b.getChannelId()&&m.push({key:"channel",value:Editor.guid(32)}),null==b.getChannelKey()&&m.push({key:"key",value:Editor.guid(32)}),m.push({key:"secret",value:null!=p?p:Editor.guid(32)}));q||(null!=k||f||(k=this.placeholderThumbnail,n=this.placeholderMimeType),null!=k&&null!=n&&(G.thumbnail={image:k,mimeType:n}));var t=b.getData(),E=mxUtils.bind(this,function(d){try{if(b.saveDelay=(new Date).getTime()-
+b)}catch(F){}});if(b.isEditable()&&null!=b.desc){var v=(new Date).getTime(),x=b.desc.etag,A=b.desc.modifiedDate,z=b.desc.headRevisionId,B=this.ui.useCanvasForExport&&/(\.png)$/i.test(b.getTitle());f=null!=f?f:!1;var y=null,C=!1,D={mimeType:b.desc.mimeType,title:b.getTitle()};if(this.isGoogleRealtimeMimeType(D.mimeType))D.mimeType=this.xmlMimeType,y=b.desc,C=c=!0;else if("application/octet-stream"==D.mimeType||"1"==urlParams["override-mime"]&&D.mimeType!=this.xmlMimeType)D.mimeType=this.xmlMimeType;
+var G=mxUtils.bind(this,function(k,n,q){try{b.saveLevel=3;b.constructor==DriveFile&&(null==m&&(m=[]),null==b.getChannelId()&&m.push({key:"channel",value:Editor.guid(32)}),null==b.getChannelKey()&&m.push({key:"key",value:Editor.guid(32)}),m.push({key:"secret",value:null!=p?p:Editor.guid(32)}));q||(null!=k||f||(k=this.placeholderThumbnail,n=this.placeholderMimeType),null!=k&&null!=n&&(D.thumbnail={image:k,mimeType:n}));var t=b.getData(),F=mxUtils.bind(this,function(d){try{if(b.saveDelay=(new Date).getTime()-
v,b.saveLevel=11,null==d)g({message:mxResources.get("errorSavingFile")+": Empty response"});else{var f=(new Date(d.modifiedDate)).getTime()-(new Date(A)).getTime();if(0>=f||x==d.etag||c&&z==d.headRevisionId){b.saveLevel=12;var k=[];0>=f&&k.push("invalid modified time");x==d.etag&&k.push("stale etag");c&&z==d.headRevisionId&&k.push("stale revision");var l=k.join(", ");g({message:mxResources.get("errorSavingFile")+": "+l},d);try{EditorUi.logError("Critical: Error saving to Google Drive "+b.desc.id,
null,"from-"+z+"."+A+"-"+this.ui.hashValue(x)+"-to-"+d.headRevisionId+"."+d.modifiedDate+"-"+this.ui.hashValue(d.etag)+(0<l.length?"-errors-"+l:""),"user-"+(null!=this.user?this.user.id:"nouser")+(null!=b.sync?"-client_"+b.sync.clientId:"-nosync"))}catch(U){}}else if(b.saveLevel=null,e(d,t),null!=y){this.executeRequest({url:"/files/"+y.id+"/revisions/"+y.headRevisionId+"?supportsAllDrives=true"},mxUtils.bind(this,mxUtils.bind(this,function(b){b.pinned=!0;this.executeRequest({url:"/files/"+y.id+"/revisions/"+
-y.headRevisionId,method:"PUT",params:b})})));try{EditorUi.logEvent({category:b.convertedFrom+"-CONVERT-FILE-"+b.getHash(),action:"from_"+y.id+"."+y.headRevisionId+"-to_"+b.desc.id+"."+b.desc.headRevisionId,label:null!=this.user?"user_"+this.user.id:"nouser"+(null!=b.sync?"-client_"+b.sync.clientId:"nosync")})}catch(U){}}}}catch(U){u(U)}}),M=mxUtils.bind(this,function(e,f){b.saveLevel=4;try{null!=m&&(G.properties=m);var n=l||b.constructor!=DriveFile||"manual"!=DrawioFile.SYNC&&"auto"!=DrawioFile.SYNC?
-null:b.getCurrentEtag(),p=mxUtils.bind(this,function(k){b.saveLevel=5;try{var l=b.desc.mimeType!=this.xmlMimeType&&b.desc.mimeType!=this.mimeType&&b.desc.mimeType!=this.libraryMimeType,m=!0,p=null;try{p=window.setTimeout(mxUtils.bind(this,function(){m=!1;g({code:App.ERROR_TIMEOUT})}),5*this.ui.timeout)}catch(ba){}this.executeRequest(this.createUploadRequest(b.getId(),G,e,c||k||l,f,k?null:n,C),mxUtils.bind(this,function(b){window.clearTimeout(p);m&&E(b)}),mxUtils.bind(this,function(c){window.clearTimeout(p);
+y.headRevisionId,method:"PUT",params:b})})));try{EditorUi.logEvent({category:b.convertedFrom+"-CONVERT-FILE-"+b.getHash(),action:"from_"+y.id+"."+y.headRevisionId+"-to_"+b.desc.id+"."+b.desc.headRevisionId,label:null!=this.user?"user_"+this.user.id:"nouser"+(null!=b.sync?"-client_"+b.sync.clientId:"nosync")})}catch(U){}}}}catch(U){u(U)}}),M=mxUtils.bind(this,function(e,f){b.saveLevel=4;try{null!=m&&(D.properties=m);var n=l||b.constructor!=DriveFile||"manual"!=DrawioFile.SYNC&&"auto"!=DrawioFile.SYNC?
+null:b.getCurrentEtag(),p=mxUtils.bind(this,function(k){b.saveLevel=5;try{var l=b.desc.mimeType!=this.xmlMimeType&&b.desc.mimeType!=this.mimeType&&b.desc.mimeType!=this.libraryMimeType,m=!0,p=null;try{p=window.setTimeout(mxUtils.bind(this,function(){m=!1;g({code:App.ERROR_TIMEOUT})}),5*this.ui.timeout)}catch(ba){}this.executeRequest(this.createUploadRequest(b.getId(),D,e,c||k||l,f,k?null:n,C),mxUtils.bind(this,function(b){window.clearTimeout(p);m&&F(b)}),mxUtils.bind(this,function(c){window.clearTimeout(p);
if(m){b.saveLevel=6;try{b.isConflict(c)?this.executeRequest({url:"/files/"+b.getId()+"?supportsAllDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(e){b.saveLevel=7;try{if(null!=e&&e.etag==n)if(d<this.staleEtagMaxRetries){d++;var f=2*d*this.coolOff*(1+.1*(Math.random()-.5));window.setTimeout(y,f);"1"==urlParams.test&&EditorUi.debug("DriveClient: Stale Etag Detected","retry",d,"delay",f)}else{y(!0);try{EditorUi.logEvent({category:"STALE-ETAG-SAVE-FILE-"+b.getHash(),action:"rev_"+
b.desc.headRevisionId+"-mod_"+b.desc.modifiedDate+"-size_"+b.getSize()+"-mime_"+b.desc.mimeType+(this.ui.editor.autosave?"":"-nosave")+(b.isAutosave()?"":"-noauto")+(b.changeListenerEnabled?"":"-nolisten")+(b.inConflictState?"-conflict":"")+(b.invalidChecksum?"-invalid":""),label:(null!=this.user?"user_"+this.user.id:"nouser")+(null!=b.sync?"-client_"+b.sync.clientId:"-nosync")})}catch(fa){}}else"1"==urlParams.test&&e.headRevisionId==z&&EditorUi.debug("DriveClient: Remote Etag Changed","local",n,
"remote",e.etag,"rev",b.desc.headRevisionId,"response",[e],"file",[b]),g(c,e)}catch(fa){u(fa)}}),mxUtils.bind(this,function(){g(c)})):g(c)}catch(na){u(na)}}}))}catch(ba){u(ba)}}),y=mxUtils.bind(this,function(c){b.saveLevel=9;if(c||null==n)p(c);else{var d=!0,e=null;try{e=window.setTimeout(mxUtils.bind(this,function(){d=!1;g({code:App.ERROR_TIMEOUT})}),3*this.ui.timeout)}catch(aa){}this.executeRequest({url:"/files/"+b.getId()+"?supportsAllDrives=true&fields="+this.catchupFields},mxUtils.bind(this,function(f){window.clearTimeout(e);
if(d){b.saveLevel=10;try{null!=f&&f.headRevisionId==z?("1"==urlParams.test&&n!=f.etag&&EditorUi.debug("DriveClient: Preflight Etag Update","from",n,"to",f.etag,"rev",b.desc.headRevisionId,"response",[f],"file",[b]),n=f.etag,p(c)):g({error:{code:412}},f)}catch(ba){u(ba)}}}),mxUtils.bind(this,function(c){window.clearTimeout(e);d&&(b.saveLevel=11,g(c))}))}});if(B&&null==k){b.saveLevel=8;var q=new Image;q.onload=mxUtils.bind(this,function(){try{var b=this.thumbnailWidth/q.width,c=document.createElement("canvas");
-c.width=this.thumbnailWidth;c.height=Math.floor(q.height*b);c.getContext("2d").drawImage(q,0,0,c.width,c.height);var d=c.toDataURL(),d=d.substring(d.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");G.thumbnail={image:d,mimeType:"image/png"};y(!1)}catch(aa){try{y(!1)}catch(ba){u(ba)}}});q.src="data:image/png;base64,"+e}else y(!1)}catch(S){u(S)}});if(B){var F=this.ui.getPngFileProperties(this.ui.fileNode);this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){M(b,!0)}),g,this.ui.getCurrentFile()!=
-b?t:null,F.scale,F.border)}else M(t,!1)}catch(O){u(O)}});try{b.saveLevel=2,(f||B||b.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||null!=G.mimeType&&"application/vnd.jgraph.mxfile"!=G.mimeType.substring(0,29)||!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(b){try{var c=null;try{null!=b&&(c=b.toDataURL("image/png")),null!=c&&(c=c.length>this.maxThumbnailSize?null:c.substring(c.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_"))}catch(H){c=null}F(c,
-"image/png")}catch(H){u(H)}})))&&F(null,null,b.constructor!=DriveLibrary)}catch(D){u(D)}}else this.ui.editor.graph.reset(),g({message:mxResources.get("readOnly")})}catch(D){u(D)}};DriveClient.prototype.insertFile=function(b,c,e,k,n,f,l){f=null!=f?f:this.xmlMimeType;b={mimeType:f,title:b};null!=e&&(b.parents=[{kind:"drive#fileLink",id:e}]);this.executeRequest(this.createUploadRequest(null,b,c,!1,l),mxUtils.bind(this,function(b){f==this.libraryMimeType?k(new DriveLibrary(this.ui,c,b)):0==b?null!=n&&
+c.width=this.thumbnailWidth;c.height=Math.floor(q.height*b);c.getContext("2d").drawImage(q,0,0,c.width,c.height);var d=c.toDataURL(),d=d.substring(d.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_");D.thumbnail={image:d,mimeType:"image/png"};y(!1)}catch(aa){try{y(!1)}catch(ba){u(ba)}}});q.src="data:image/png;base64,"+e}else y(!1)}catch(S){u(S)}});if(B){var E=this.ui.getPngFileProperties(this.ui.fileNode);this.ui.getEmbeddedPng(mxUtils.bind(this,function(b){M(b,!0)}),g,this.ui.getCurrentFile()!=
+b?t:null,E.scale,E.border)}else M(t,!1)}catch(P){u(P)}});try{b.saveLevel=2,(f||B||b.constructor==DriveLibrary||!this.enableThumbnails||"0"==urlParams.thumb||null!=D.mimeType&&"application/vnd.jgraph.mxfile"!=D.mimeType.substring(0,29)||!this.ui.getThumbnail(this.thumbnailWidth,mxUtils.bind(this,function(b){try{var c=null;try{null!=b&&(c=b.toDataURL("image/png")),null!=c&&(c=c.length>this.maxThumbnailSize?null:c.substring(c.indexOf(",")+1).replace(/\+/g,"-").replace(/\//g,"_"))}catch(H){c=null}G(c,
+"image/png")}catch(H){u(H)}})))&&G(null,null,b.constructor!=DriveLibrary)}catch(E){u(E)}}else this.ui.editor.graph.reset(),g({message:mxResources.get("readOnly")})}catch(E){u(E)}};DriveClient.prototype.insertFile=function(b,c,e,k,n,f,l){f=null!=f?f:this.xmlMimeType;b={mimeType:f,title:b};null!=e&&(b.parents=[{kind:"drive#fileLink",id:e}]);this.executeRequest(this.createUploadRequest(null,b,c,!1,l),mxUtils.bind(this,function(b){f==this.libraryMimeType?k(new DriveLibrary(this.ui,c,b)):0==b?null!=n&&
n({message:mxResources.get("errorSavingFile")}):k(new DriveFile(this.ui,c,b))}),n)};DriveClient.prototype.createUploadRequest=function(b,c,e,k,n,f,l){n=null!=n?n:!1;var d={"Content-Type":'multipart/mixed; boundary="-------314159265358979323846"'};null!=f&&(d["If-Match"]=f);b={fullUrl:"https://content.googleapis.com/upload/drive/v2/files"+(null!=b?"/"+b:"")+"?uploadType=multipart&supportsAllDrives=true&enforceSingleParent=true&fields="+this.allFields,method:null!=b?"PUT":"POST",headers:d,params:"\r\n---------314159265358979323846\r\nContent-Type: application/json\r\n\r\n"+
JSON.stringify(c)+"\r\n---------314159265358979323846\r\nContent-Type: application/octect-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n"+(null!=e?n?e:!window.btoa||mxClient.IS_IE||mxClient.IS_IE11?Base64.encode(e):Graph.base64EncodeUnicode(e):"")+"\r\n---------314159265358979323846--"};k||(b.fullUrl+="&newRevision=false");l&&(b.fullUrl+="&pinned=true");return b};DriveClient.prototype.createLinkPicker=function(){var d=e.linkPicker;if(null==d||e.linkPickerToken!=b){e.linkPickerToken=b;var d=(new google.picker.DocsView(google.picker.ViewId.FOLDERS)).setParent("root").setIncludeFolders(!0).setSelectFolderEnabled(!0),
c=(new google.picker.DocsView).setIncludeFolders(!0).setSelectFolderEnabled(!0),g=(new google.picker.DocsView).setIncludeFolders(!0).setEnableDrives(!0).setSelectFolderEnabled(!0),d=(new google.picker.PickerBuilder).setAppId(this.appId).setLocale(mxLanguage).setOAuthToken(e.linkPickerToken).enableFeature(google.picker.Feature.SUPPORT_DRIVES).addView(d).addView(c).addView(g).addView(google.picker.ViewId.RECENTLY_PICKED)}return d};DriveClient.prototype.pickFile=function(d,c,g){this.filePickerCallback=
@@ -11569,31 +11572,31 @@ f.appendChild(n)})(n[q],q,t),y++}m.has_more?(g=m.next_cursor,0==y?k():(f.appendC
DriveComment.prototype.editComment=function(b,e,d){this.content=b;b={content:b};this.file.ui.drive.executeRequest(this.pCommentId?{url:"/files/"+this.file.getId()+"/comments/"+this.pCommentId+"/replies/"+this.id,params:b,method:"PATCH"}:{url:"/files/"+this.file.getId()+"/comments/"+this.id,params:b,method:"PATCH"},e,d)};
DriveComment.prototype.deleteComment=function(b,e){this.file.ui.drive.executeRequest(this.pCommentId?{url:"/files/"+this.file.getId()+"/comments/"+this.pCommentId+"/replies/"+this.id,method:"DELETE"}:{url:"/files/"+this.file.getId()+"/comments/"+this.id,method:"DELETE"},b,e)};function mxODPicker(b,e,d,c,g,k,n,f,l,m,p,q,t){function u(b,c){c=c||document;return c.querySelector(b)}function v(b,d,e){if(null==b["@microsoft.graph.downloadUrl"])if(null==b.parentReference)e();else{c(b.id,b.parentReference.driveId,function(b){v(b,d,e)},e);return}var f=new XMLHttpRequest;f.open("GET",b["@microsoft.graph.downloadUrl"]);var g=b.file?"image/png"==b.file.mimeType:!1;f.onreadystatechange=function(){if(4==this.readyState){if(200<=this.status&&299>=this.status)try{var b=f.responseText;
g&&(b="data:image/png;base64,"+Editor.base64Encode(b),b=Editor.extractGraphModelFromPng(b));var c=mxUtils.parseXml(b),k="mxlibrary"==c.documentElement.nodeName?c.documentElement:Editor.extractGraphModel(c.documentElement);if(null!=k){d(k.ownerDocument);return}}catch(V){}e()}};g&&f.overrideMimeType&&f.overrideMimeType("text/plain; charset=x-user-defined");f.send()}function x(){q&&null!=I?H.exportToCanvas(function(b){b=EditorUi.prototype.createImageDataUri(b,null,"png");n(L,b);k(L)},400,null,null,function(b){console.log(b)},
-600,null,null,null,null,null,I):(n(L,void 0),k(L))}function A(b){function c(b){P.style.background="transparent";P.innerHTML="";var c=document.createElement("div");c.className="odPreviewStatus";mxUtils.write(c,b);P.appendChild(c);E.stop()}if(null!=P)if(P.style.background="transparent",P.innerHTML="",null==b||b.folder||/\.drawiolib$/.test(b.name))c(mxResources.get("noPreview"));else try{null!=b.remoteItem&&(b=b.remoteItem),T=b,E.spin(P),v(b,function(d){E.stop();if(T==b)if("mxlibrary"==d.documentElement.nodeName)c(mxResources.get("noPreview"));
-else{var e=d.getElementsByTagName("diagram");I=AspectDialog.prototype.createViewer(P,0==e.length?d.documentElement:e[0],null,"transparent")}},function(){L=null;c(mxResources.get("notADiagramFile"))})}catch(ba){L=null,c(mxResources.get("notADiagramFile"))}}function z(){var b=u(".odFilesBreadcrumb");if(null!=b){b.innerHTML="";for(var c=0;c<O.length-1;c++){var d=document.createElement("span");d.className="odBCFolder";d.innerHTML=mxUtils.htmlEntities(O[c].name||mxResources.get("home"));b.appendChild(d);
-(function(b,c){d.addEventListener("click",function(){e(null);O=O.slice(0,c);y(b.driveId,b.folderId,b.siteId,b.name)})})(O[c],c);var f=document.createElement("span");f.innerHTML=" &gt; ";b.appendChild(f)}null!=O[O.length-1]&&(c=document.createElement("span"),c.innerHTML=mxUtils.htmlEntities(1==O.length?mxResources.get("officeSelDiag"):O[O.length-1].name||mxResources.get("home")),b.appendChild(c))}}function B(){if(null!=L&&!N)if("sharepoint"==M)y("site",null,L.id,L.displayName);else if("site"==M)y("subsite",
-null,L.id,L.name);else{var b=L.folder;L=L.remoteItem?L.remoteItem:L;var c=(L.parentReference?L.parentReference.driveId:null)||M,d=L.id;b?y(c,d,null,L.name):x()}}function y(b,c,k,m,n){function p(c){E.stop();var d=document.createElement("table");d.className="odFileListGrid";for(var f=null,g=0,k=0;null!=c&&k<c.length;k++){var m=c[k];if(1!=q||!m.webUrl||0<m.webUrl.indexOf("sharepoint.com/sites/")||0>m.webUrl.indexOf("sharepoint.com/")){var n=m.displayName||m.name,p=mxUtils.htmlEntities(m.description||
+600,null,null,null,null,null,I):(n(L,void 0),k(L))}function A(b){function c(b){O.style.background="transparent";O.innerHTML="";var c=document.createElement("div");c.className="odPreviewStatus";mxUtils.write(c,b);O.appendChild(c);F.stop()}if(null!=O)if(O.style.background="transparent",O.innerHTML="",null==b||b.folder||/\.drawiolib$/.test(b.name))c(mxResources.get("noPreview"));else try{null!=b.remoteItem&&(b=b.remoteItem),T=b,F.spin(O),v(b,function(d){F.stop();if(T==b)if("mxlibrary"==d.documentElement.nodeName)c(mxResources.get("noPreview"));
+else{var e=d.getElementsByTagName("diagram");I=AspectDialog.prototype.createViewer(O,0==e.length?d.documentElement:e[0],null,"transparent")}},function(){L=null;c(mxResources.get("notADiagramFile"))})}catch(ba){L=null,c(mxResources.get("notADiagramFile"))}}function z(){var b=u(".odFilesBreadcrumb");if(null!=b){b.innerHTML="";for(var c=0;c<P.length-1;c++){var d=document.createElement("span");d.className="odBCFolder";d.innerHTML=mxUtils.htmlEntities(P[c].name||mxResources.get("home"));b.appendChild(d);
+(function(b,c){d.addEventListener("click",function(){e(null);P=P.slice(0,c);y(b.driveId,b.folderId,b.siteId,b.name)})})(P[c],c);var f=document.createElement("span");f.innerHTML=" &gt; ";b.appendChild(f)}null!=P[P.length-1]&&(c=document.createElement("span"),c.innerHTML=mxUtils.htmlEntities(1==P.length?mxResources.get("officeSelDiag"):P[P.length-1].name||mxResources.get("home")),b.appendChild(c))}}function B(){if(null!=L&&!N)if("sharepoint"==M)y("site",null,L.id,L.displayName);else if("site"==M)y("subsite",
+null,L.id,L.name);else{var b=L.folder;L=L.remoteItem?L.remoteItem:L;var c=(L.parentReference?L.parentReference.driveId:null)||M,d=L.id;b?y(c,d,null,L.name):x()}}function y(b,c,k,m,n){function p(c){F.stop();var d=document.createElement("table");d.className="odFileListGrid";for(var f=null,g=0,k=0;null!=c&&k<c.length;k++){var m=c[k];if(1!=q||!m.webUrl||0<m.webUrl.indexOf("sharepoint.com/sites/")||0>m.webUrl.indexOf("sharepoint.com/")){var n=m.displayName||m.name,p=mxUtils.htmlEntities(m.description||
n);q&&(m.folder=!0);var y=null!=m.folder;if(!l||y){var t=document.createElement("tr");t.className=g++%2?"odOddRow":"odEvenRow";var u=document.createElement("td");u.style.width="36px";var C=document.createElement("img");C.src="/images/"+(y?"folder.png":"file.png");C.className="odFileImg";u.appendChild(C);t.appendChild(u);u=document.createElement("td");y=document.createElement("div");y.className="odFileTitle";y.innerHTML=mxUtils.htmlEntities(n);y.setAttribute("title",p);u.appendChild(y);t.appendChild(u);
d.appendChild(t);null==f&&(f=t,f.className+=" odRowSelected",L=m,M=b,e(L));(function(c,d){t.addEventListener("dblclick",B);t.addEventListener("click",function(){f!=d&&(f.className=f.className.replace("odRowSelected",""),f=d,f.className+=" odRowSelected",L=c,M=b,e(L))})})(m,t)}}}0==g?(c=document.createElement("div"),c.className="odEmptyFolder",c.innerHTML=mxUtils.htmlEntities(mxResources.get("folderEmpty",null,"Folder is empty!")),v.appendChild(c)):v.appendChild(d);z();N=!1}if(!N){u(".odCatsList").style.display=
-"block";u(".odFilesSec").style.display="block";null!=P&&(P.innerHTML="",P.style.top="50%");var y=N=!0,q=0;J=arguments;var t=setTimeout(function(){N=y=!1;E.stop();f(mxResources.get("timeout"))},2E4),v=u(".odFilesList");v.innerHTML="";E.spin(v);var C;switch(b){case "recent":O=[{name:mxResources.get("recent",null,"Recent"),driveId:b}];C=g()||{};var x=[],G;for(G in C)x.push(C[G]);clearTimeout(t);p(x);return;case "shared":C="/me/drive/sharedWithMe";O=[{name:mxResources.get("sharedWithMe",null,"Shared With Me"),
-driveId:b}];break;case "sharepoint":C="/sites?search=";O=[{name:mxResources.get("sharepointSites",null,"Sharepoint Sites"),driveId:b}];q=1;break;case "site":O.push({name:m,driveId:b,folderId:c,siteId:k});C="/sites/"+k+"/drives";q=2;break;case "subsite":O.push({name:m,driveId:b,folderId:c,siteId:k});C="/drives/"+k+(c?"/items/"+c:"/root")+"/children";break;case "search":b=M;O=[{driveId:b,name:mxResources.get("back",null,"Back")}];n=encodeURIComponent(n.replace(/\'/g,"\\'"));C=b?"/drives/"+b+"/root/search(q='"+
-n+"')":"/me/drive/root/search(q='"+n+"')";break;default:null==c?O=[{driveId:b}]:O.push({name:m,driveId:b,folderId:c}),C=(b?"/drives/"+b:"/me/drive")+(c?"/items/"+c:"/root")+"/children"}q||(C+=(0<C.indexOf("?")?"&":"?")+"select=id,name,description,parentReference,file,createdBy,lastModifiedBy,lastModifiedDateTime,size,folder,remoteItem,@microsoft.graph.downloadUrl");d(C,function(b){if(y){clearTimeout(t);b=b.value||[];for(var c=q?b:[],d=0;!q&&d<b.length;d++){var e=b[d],f=e.file?e.file.mimeType:null;
-(e.folder||"text/html"==f||"text/xml"==f||"application/xml"==f||"image/png"==f||/\.svg$/.test(e.name)||/\.html$/.test(e.name)||/\.xml$/.test(e.name)||/\.png$/.test(e.name)||/\.drawio$/.test(e.name)||/\.drawiolib$/.test(e.name))&&c.push(e)}p(c)}},function(b){if(y){clearTimeout(t);var c=null;try{c=JSON.parse(b.responseText).error.message}catch(ea){}f(mxResources.get("errorFetchingFolder",null,"Error fetching folder items")+(null!=c?" ("+c+")":""));N=!1;E.stop()}})}}function C(b){S.className=S.className.replace("odCatSelected",
-"");S=b;S.className+=" odCatSelected"}function G(b){N||(Y=null,y("search",null,null,null,b))}var F="";null==e&&(e=A,F='<div style="text-align: center;" class="odPreview"></div>');null==g&&(g=function(){var b=null;try{b=JSON.parse(localStorage.getItem("mxODPickerRecentList"))}catch(aa){}return b});null==k&&(k=function(b){if(null!=b){var c=g()||{};delete b["@microsoft.graph.downloadUrl"];c[b.id]=b;localStorage.setItem("mxODPickerRecentList",JSON.stringify(c))}});var F='<div class="odCatsList"><div class="odCatsListLbl">OneDrive</div><div id="odFiles" class="odCatListTitle odCatSelected">'+
+"block";u(".odFilesSec").style.display="block";null!=O&&(O.innerHTML="",O.style.top="50%");var y=N=!0,q=0;K=arguments;var t=setTimeout(function(){N=y=!1;F.stop();f(mxResources.get("timeout"))},2E4),v=u(".odFilesList");v.innerHTML="";F.spin(v);var C;switch(b){case "recent":P=[{name:mxResources.get("recent",null,"Recent"),driveId:b}];C=g()||{};var x=[],D;for(D in C)x.push(C[D]);clearTimeout(t);p(x);return;case "shared":C="/me/drive/sharedWithMe";P=[{name:mxResources.get("sharedWithMe",null,"Shared With Me"),
+driveId:b}];break;case "sharepoint":C="/sites?search=";P=[{name:mxResources.get("sharepointSites",null,"Sharepoint Sites"),driveId:b}];q=1;break;case "site":P.push({name:m,driveId:b,folderId:c,siteId:k});C="/sites/"+k+"/drives";q=2;break;case "subsite":P.push({name:m,driveId:b,folderId:c,siteId:k});C="/drives/"+k+(c?"/items/"+c:"/root")+"/children";break;case "search":b=M;P=[{driveId:b,name:mxResources.get("back",null,"Back")}];n=encodeURIComponent(n.replace(/\'/g,"\\'"));C=b?"/drives/"+b+"/root/search(q='"+
+n+"')":"/me/drive/root/search(q='"+n+"')";break;default:null==c?P=[{driveId:b}]:P.push({name:m,driveId:b,folderId:c}),C=(b?"/drives/"+b:"/me/drive")+(c?"/items/"+c:"/root")+"/children"}q||(C+=(0<C.indexOf("?")?"&":"?")+"select=id,name,description,parentReference,file,createdBy,lastModifiedBy,lastModifiedDateTime,size,folder,remoteItem,@microsoft.graph.downloadUrl");d(C,function(b){if(y){clearTimeout(t);b=b.value||[];for(var c=q?b:[],d=0;!q&&d<b.length;d++){var e=b[d],f=e.file?e.file.mimeType:null;
+(e.folder||"text/html"==f||"text/xml"==f||"application/xml"==f||"image/png"==f||/\.svg$/.test(e.name)||/\.html$/.test(e.name)||/\.xml$/.test(e.name)||/\.png$/.test(e.name)||/\.drawio$/.test(e.name)||/\.drawiolib$/.test(e.name))&&c.push(e)}p(c)}},function(b){if(y){clearTimeout(t);var c=null;try{c=JSON.parse(b.responseText).error.message}catch(ea){}f(mxResources.get("errorFetchingFolder",null,"Error fetching folder items")+(null!=c?" ("+c+")":""));N=!1;F.stop()}})}}function C(b){S.className=S.className.replace("odCatSelected",
+"");S=b;S.className+=" odCatSelected"}function D(b){N||(Y=null,y("search",null,null,null,b))}var G="";null==e&&(e=A,G='<div style="text-align: center;" class="odPreview"></div>');null==g&&(g=function(){var b=null;try{b=JSON.parse(localStorage.getItem("mxODPickerRecentList"))}catch(aa){}return b});null==k&&(k=function(b){if(null!=b){var c=g()||{};delete b["@microsoft.graph.downloadUrl"];c[b.id]=b;localStorage.setItem("mxODPickerRecentList",JSON.stringify(c))}});var G='<div class="odCatsList"><div class="odCatsListLbl">OneDrive</div><div id="odFiles" class="odCatListTitle odCatSelected">'+
mxUtils.htmlEntities(mxResources.get("files"))+'</div><div id="odRecent" class="odCatListTitle">'+mxUtils.htmlEntities(mxResources.get("recent"))+'</div><div id="odShared" class="odCatListTitle">'+mxUtils.htmlEntities(mxResources.get("shared"))+'</div><div id="odSharepoint" class="odCatListTitle">'+mxUtils.htmlEntities(mxResources.get("sharepoint"))+'</div></div><div class="odFilesSec"><div class="searchBar" style="display:none"><input type="search" id="odSearchBox" placeholder="'+mxUtils.htmlEntities(mxResources.get("search"))+
-'"></div><div class="odFilesBreadcrumb"></div><div id="refreshOD" class="odRefreshButton"><img src="/images/update32.png" width="16" height="16" title="'+mxUtils.htmlEntities(mxResources.get("refresh"))+'Refresh" border="0"/></div><div class="odFilesList"></div></div>'+F+(m?'<div id="odBackBtn" class="odLinkBtn">&lt; '+mxUtils.htmlEntities(mxResources.get("back"))+"</div>":"")+(p?'<button id="odSubmitBtn" class="odSubmitBtn">'+mxUtils.htmlEntities(mxResources.get(l?"save":"open"))+"</button>":""),
-D=null!=window.Editor&&null!=Editor.isDarkMode&&Editor.isDarkMode(),D=".odCatsList {\tbox-sizing: border-box;\tposition:absolute;\ttop:0px;\tbottom:50%;\twidth:30%;\tborder: 1px solid #CCCCCC;\tborder-bottom:none;\tdisplay: inline-block;\toverflow-x: hidden;\toverflow-y: auto;}.odCatsListLbl {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;}.odFilesSec {\tbox-sizing: border-box;\tposition:absolute;\tleft:30%;\ttop:0px;\tbottom:50%;\twidth: 70%;\tborder: 1px solid #CCCCCC;\tborder-left:none;\tborder-bottom:none;\tdisplay: inline-block;\toverflow: hidden;}.odFilesBreadcrumb {\tbox-sizing: border-box;\tposition:absolute;\tmin-height: 32px;\tleft:0px;\tright:20px;\ttext-overflow:ellipsis;\toverflow:hidden;\tfont-size: 13px;\tcolor: #6D6D6D;\tpadding: 5px;}.odRefreshButton {\tbox-sizing: border-box;\tposition:absolute;\tright:0px;\ttop:0px;\tpadding: 4px;\tmargin: 1px;\theight:24px;\tcursor:default;}.odRefreshButton>img {\topacity:0.5;}.odRefreshButton:hover {\tbackground-color:#ddd;\tborder-radius:50%;}.odRefreshButton:active {\topacity:0.7;}.odFilesList {\tbox-sizing: border-box;\tposition:absolute;\ttop:32px;\tbottom:0px;\twidth: 100%;\toverflow-x: hidden;\toverflow-y: auto;}.odFileImg {\twidth: 24px;\tpadding-left: 5px;\tpadding-right: 5px;}.odFileTitle {\tcursor: default;\tfont-weight: normal;\tcolor: #666666 !important;\twidth: calc(100% - 20px);\twhite-space: nowrap;\toverflow: hidden;\ttext-overflow: ellipsis;}.odFileListGrid {\twidth: 100%;\twhite-space: nowrap;\tfont-size: 13px; box-sizing: border-box; border-spacing: 0;}.odOddRow {"+
-(D?"":"\tbackground-color: #eeeeee;")+"}.odEvenRow {"+(D?"":"\tbackground-color: #FFFFFF;")+"}.odRowSelected {\tbackground-color: #cadfff;}.odCatListTitle {\tbox-sizing: border-box;\theight: 17px;\tcursor: default;\tcolor: #666666;\tfont-size: 14px;\tline-height: 17px;\tmargin: 5px 0 5px 0px; padding-left: 10px;}.odCatSelected {\tfont-weight: bold;\tbackground-color: #cadfff;}.odEmptyFolder {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;\twidth: 100%; text-align: center;}.odBCFolder {\tcursor: pointer;\tcolor: #0432ff;}.odPreviewStatus {\tposition:absolute;\ttext-align:center;\twidth:100%;\ttop:50%;\ttransform: translateY(-50%);\tfont-size:13px;\topacity:0.5;}.odPreview { position:absolute;\t overflow:hidden;\t border: 1px solid #CCCCCC; bottom:0px; top: 50%; left:0px; right:0px;}.odLinkBtn { position: absolute;\tfont-size: 12px;\tcursor: pointer;\tcolor: #6D6D6D;\tleft: 5px;\tbottom: 3px;}.odSubmitBtn { position: absolute;\tcolor: #333;\tright: 5px;\tbottom: 5px;}",
-E=new Spinner({left:"50%",lines:12,length:8,width:3,radius:5,rotate:0,color:"#000",speed:1,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9}),H=new Editor,I=null,L=null,M=null,N=!1,O=[],J=null,T=null;this.getSelectedItem=function(){null!=L&&k(L);return L};if(null==u("#mxODPickerCss")){var K=document.head||document.getElementsByTagName("head")[0],U=document.createElement("style");K.appendChild(U);U.type="text/css";U.id="mxODPickerCss";U.appendChild(document.createTextNode(D))}b.innerHTML=
-F;var P=u(".odPreview"),S=u("#odFiles");b=function(b,c){c=c||document;return c.querySelectorAll(b)}(".odCatListTitle");for(F=0;F<b.length;F++)b[F].addEventListener("click",function(){L=T=null;if(!N)switch(C(this),this.id){case "odFiles":y();break;case "odRecent":y("recent");break;case "odShared":y("shared");break;case "odSharepoint":y("sharepoint")}});var Y=null;u("#odSearchBox").addEventListener("keyup",function(b){var c=this;null!=Y&&clearTimeout(Y);13==b.keyCode?G(c.value):Y=setTimeout(function(){G(c.value)},
-500)});u("#refreshOD").addEventListener("click",function(){null!=J&&(e(null),y.apply(this,J))});m&&u("#odBackBtn").addEventListener("click",m);p&&u("#odSubmitBtn").addEventListener("click",x);null!=t?(m=t.pop(),"sharepoint"==t[0].driveId&&C(u("#odSharepoint")),O=t,y(m.driveId,m.folderId,m.siteId,m.name)):y()};App=function(b,e,d){EditorUi.call(this,b,e,null!=d?d:"1"==urlParams.lightbox||"min"==uiTheme&&"0"!=urlParams.chrome);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(window.onunload=mxUtils.bind(this,function(){var b=this.getCurrentFile();if(null!=b&&b.isModified()){var d={category:"DISCARD-FILE-"+b.getHash(),action:(b.savingFile?"saving":"")+(b.savingFile&&null!=b.savingFileTime?"_"+Math.round((Date.now()-b.savingFileTime.getTime())/1E3):"")+(null!=b.saveLevel?"-sl_"+b.saveLevel:"")+"-age_"+(null!=
+'"></div><div class="odFilesBreadcrumb"></div><div id="refreshOD" class="odRefreshButton"><img src="/images/update32.png" width="16" height="16" title="'+mxUtils.htmlEntities(mxResources.get("refresh"))+'Refresh" border="0"/></div><div class="odFilesList"></div></div>'+G+(m?'<div id="odBackBtn" class="odLinkBtn">&lt; '+mxUtils.htmlEntities(mxResources.get("back"))+"</div>":"")+(p?'<button id="odSubmitBtn" class="odSubmitBtn">'+mxUtils.htmlEntities(mxResources.get(l?"save":"open"))+"</button>":""),
+E=null!=window.Editor&&null!=Editor.isDarkMode&&Editor.isDarkMode(),E=".odCatsList {\tbox-sizing: border-box;\tposition:absolute;\ttop:0px;\tbottom:50%;\twidth:30%;\tborder: 1px solid #CCCCCC;\tborder-bottom:none;\tdisplay: inline-block;\toverflow-x: hidden;\toverflow-y: auto;}.odCatsListLbl {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;}.odFilesSec {\tbox-sizing: border-box;\tposition:absolute;\tleft:30%;\ttop:0px;\tbottom:50%;\twidth: 70%;\tborder: 1px solid #CCCCCC;\tborder-left:none;\tborder-bottom:none;\tdisplay: inline-block;\toverflow: hidden;}.odFilesBreadcrumb {\tbox-sizing: border-box;\tposition:absolute;\tmin-height: 32px;\tleft:0px;\tright:20px;\ttext-overflow:ellipsis;\toverflow:hidden;\tfont-size: 13px;\tcolor: #6D6D6D;\tpadding: 5px;}.odRefreshButton {\tbox-sizing: border-box;\tposition:absolute;\tright:0px;\ttop:0px;\tpadding: 4px;\tmargin: 1px;\theight:24px;\tcursor:default;}.odRefreshButton>img {\topacity:0.5;}.odRefreshButton:hover {\tbackground-color:#ddd;\tborder-radius:50%;}.odRefreshButton:active {\topacity:0.7;}.odFilesList {\tbox-sizing: border-box;\tposition:absolute;\ttop:32px;\tbottom:0px;\twidth: 100%;\toverflow-x: hidden;\toverflow-y: auto;}.odFileImg {\twidth: 24px;\tpadding-left: 5px;\tpadding-right: 5px;}.odFileTitle {\tcursor: default;\tfont-weight: normal;\tcolor: #666666 !important;\twidth: calc(100% - 20px);\twhite-space: nowrap;\toverflow: hidden;\ttext-overflow: ellipsis;}.odFileListGrid {\twidth: 100%;\twhite-space: nowrap;\tfont-size: 13px; box-sizing: border-box; border-spacing: 0;}.odOddRow {"+
+(E?"":"\tbackground-color: #eeeeee;")+"}.odEvenRow {"+(E?"":"\tbackground-color: #FFFFFF;")+"}.odRowSelected {\tbackground-color: #cadfff;}.odCatListTitle {\tbox-sizing: border-box;\theight: 17px;\tcursor: default;\tcolor: #666666;\tfont-size: 14px;\tline-height: 17px;\tmargin: 5px 0 5px 0px; padding-left: 10px;}.odCatSelected {\tfont-weight: bold;\tbackground-color: #cadfff;}.odEmptyFolder {\theight: 17px;\tcolor: #6D6D6D;\tfont-size: 14px;\tfont-weight: bold;\tline-height: 17px;\tmargin: 10px 0 3px 5px;\twidth: 100%; text-align: center;}.odBCFolder {\tcursor: pointer;\tcolor: #0432ff;}.odPreviewStatus {\tposition:absolute;\ttext-align:center;\twidth:100%;\ttop:50%;\ttransform: translateY(-50%);\tfont-size:13px;\topacity:0.5;}.odPreview { position:absolute;\t overflow:hidden;\t border: 1px solid #CCCCCC; bottom:0px; top: 50%; left:0px; right:0px;}.odLinkBtn { position: absolute;\tfont-size: 12px;\tcursor: pointer;\tcolor: #6D6D6D;\tleft: 5px;\tbottom: 3px;}.odSubmitBtn { position: absolute;\tcolor: #333;\tright: 5px;\tbottom: 5px;}",
+F=new Spinner({left:"50%",lines:12,length:8,width:3,radius:5,rotate:0,color:"#000",speed:1,trail:60,shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9}),H=new Editor,I=null,L=null,M=null,N=!1,P=[],K=null,T=null;this.getSelectedItem=function(){null!=L&&k(L);return L};if(null==u("#mxODPickerCss")){var J=document.head||document.getElementsByTagName("head")[0],U=document.createElement("style");J.appendChild(U);U.type="text/css";U.id="mxODPickerCss";U.appendChild(document.createTextNode(E))}b.innerHTML=
+G;var O=u(".odPreview"),S=u("#odFiles");b=function(b,c){c=c||document;return c.querySelectorAll(b)}(".odCatListTitle");for(G=0;G<b.length;G++)b[G].addEventListener("click",function(){L=T=null;if(!N)switch(C(this),this.id){case "odFiles":y();break;case "odRecent":y("recent");break;case "odShared":y("shared");break;case "odSharepoint":y("sharepoint")}});var Y=null;u("#odSearchBox").addEventListener("keyup",function(b){var c=this;null!=Y&&clearTimeout(Y);13==b.keyCode?D(c.value):Y=setTimeout(function(){D(c.value)},
+500)});u("#refreshOD").addEventListener("click",function(){null!=K&&(e(null),y.apply(this,K))});m&&u("#odBackBtn").addEventListener("click",m);p&&u("#odSubmitBtn").addEventListener("click",x);null!=t?(m=t.pop(),"sharepoint"==t[0].driveId&&C(u("#odSharepoint")),P=t,y(m.driveId,m.folderId,m.siteId,m.name)):y()};App=function(b,e,d){EditorUi.call(this,b,e,null!=d?d:"1"==urlParams.lightbox||"min"==uiTheme&&"0"!=urlParams.chrome);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||(window.onunload=mxUtils.bind(this,function(){var b=this.getCurrentFile();if(null!=b&&b.isModified()){var d={category:"DISCARD-FILE-"+b.getHash(),action:(b.savingFile?"saving":"")+(b.savingFile&&null!=b.savingFileTime?"_"+Math.round((Date.now()-b.savingFileTime.getTime())/1E3):"")+(null!=b.saveLevel?"-sl_"+b.saveLevel:"")+"-age_"+(null!=
b.ageStart?Math.round((Date.now()-b.ageStart.getTime())/1E3):"x")+(this.editor.autosave?"":"-nosave")+(b.isAutosave()?"":"-noauto")+"-open_"+(null!=b.opened?Math.round((Date.now()-b.opened.getTime())/1E3):"x")+"-save_"+(null!=b.lastSaved?Math.round((Date.now()-b.lastSaved.getTime())/1E3):"x")+"-change_"+(null!=b.lastChanged?Math.round((Date.now()-b.lastChanged.getTime())/1E3):"x")+"-alive_"+Math.round((Date.now()-App.startTime.getTime())/1E3),label:null!=b.sync?"client_"+b.sync.clientId:"nosync"};
b.constructor==DriveFile&&null!=b.desc&&null!=this.drive&&(d.label+=(null!=this.drive.user?"-user_"+this.drive.user.id:"-nouser")+"-rev_"+b.desc.headRevisionId+"-mod_"+b.desc.modifiedDate+"-size_"+b.getSize()+"-mime_"+b.desc.mimeType);EditorUi.logEvent(d)}}));this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(){var b=this.getCurrentFile();null!=b&&EditorUi.logEvent({category:(this.editor.autosave?"ON":"OFF")+"-AUTOSAVE-FILE-"+b.getHash(),action:"changed",label:"autosave_"+(this.editor.autosave?
"on":"off")})}));mxClient.IS_SVG?mxGraph.prototype.warningImage.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAE7SURBVHjaYvz//z8DJQAggBjwGXDuHMP/tWuD/uPTCxBAOA0AaQRK/f/+XeJ/cbHlf1wGAAQQTgPu3QNLgfHSpZo4DQAIIKwGwGyH4e/fFbG6AiQJEEAs2Ew2NFzH8OOHBMO6dT/A/KCg7wxGRh+wuhQggDBcALMdFIAcHBxgDGJjcwVIIUAAYbhAUXEdVos4OO4DXcGBIQ4QQCguQPY7sgtgAYruCpAgQACx4LJdU1OCwctLEcyWlLwPJF+AXQE0EMUBAAEEdwF6yMOiD4RRY0QT7gqQAEAAseDzu6XldYYPH9DD4joQa8L5AAEENgWb7SBcXa0JDQMBrK4AcQACiAlfyOMCEFdAnAYQQEz4FLa0XGf4/v0H0IIPONUABBAjyBmMjIwMS5cK/L927QORbtBkaG29DtYLEGAAH6f7oq3Zc+kAAAAASUVORK5CYII=":
(new Image).src=mxGraph.prototype.warningImage.src;window.openWindow=mxUtils.bind(this,function(b,d,e){if("1"==urlParams.openInSameWin||navigator.standalone)e();else{var c=null;try{c=window.open(b)}catch(f){}null==c||void 0===c?this.showDialog((new PopupDialog(this,b,d,e)).container,320,140,!0,!0):null!=d&&d()}});this.updateDocumentTitle();this.updateUi();window.showOpenAlert=mxUtils.bind(this,function(b){null!=window.openFile&&window.openFile.cancel(!0);this.handleError(b)});this.editor.chromeless&&
!this.editor.editable||this.addFileDropHandler([document]);if(null!=App.DrawPlugins){for(b=0;b<App.DrawPlugins.length;b++)try{App.DrawPlugins[b](this)}catch(c){null!=window.console&&console.log("Plugin Error:",c,App.DrawPlugins[b])}finally{App.embedModePluginsCount--,this.initializeEmbedMode()}window.Draw.loadPlugin=mxUtils.bind(this,function(b){try{b(this)}finally{App.embedModePluginsCount--,this.initializeEmbedMode()}});setTimeout(mxUtils.bind(this,function(){0<App.embedModePluginsCount&&(App.embedModePluginsCount=
0,this.initializeEmbedMode())}),5E3)}this.load()};App.ERROR_TIMEOUT="timeout";App.ERROR_BUSY="busy";App.ERROR_UNKNOWN="unknown";App.MODE_GOOGLE="google";App.MODE_DROPBOX="dropbox";App.MODE_ONEDRIVE="onedrive";App.MODE_GITHUB="github";App.MODE_GITLAB="gitlab";App.MODE_DEVICE="device";App.MODE_BROWSER="browser";App.MODE_TRELLO="trello";App.MODE_NOTION="notion";App.MODE_EMBED="embed";App.MODE_ATLAS="atlas";App.DROPBOX_APPKEY=window.DRAWIO_DROPBOX_ID;App.DROPBOX_URL=window.DRAWIO_BASE_URL+"/js/dropbox/Dropbox-sdk.min.js";
-App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";App.ONEDRIVE_URL=mxClient.IS_IE11?"https://js.live.net/v7.2/OneDrive.js":window.DRAWIO_BASE_URL+"/js/onedrive/OneDrive.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL=window.DRAWIO_BASE_URL+"/js/jquery/jquery-3.3.1.min.js";App.PUSHER_KEY="1e756b07a690c5bdb054";App.PUSHER_CLUSTER="eu";App.PUSHER_URL="https://js.pusher.com/4.3/pusher.min.js";App.SOCKET_IO_URL=window.DRAWIO_BASE_URL+"/js/socket.io/socket.io.min.js";
+App.DROPINS_URL="https://www.dropbox.com/static/api/2/dropins.js";App.ONEDRIVE_URL=mxClient.IS_IE11?"https://js.live.net/v7.2/OneDrive.js":window.DRAWIO_BASE_URL+"/js/onedrive/OneDrive.js";App.TRELLO_URL="https://api.trello.com/1/client.js";App.TRELLO_JQUERY_URL=window.DRAWIO_BASE_URL+"/js/jquery/jquery-3.3.1.min.js";App.PUSHER_KEY="1e756b07a690c5bdb054";App.PUSHER_CLUSTER="eu";App.PUSHER_URL="https://js.pusher.com/7.0.3/pusher.min.js";App.SOCKET_IO_URL=window.DRAWIO_BASE_URL+"/js/socket.io/socket.io.min.js";
App.SIMPLE_PEER_URL=window.DRAWIO_BASE_URL+"/js/socket.io/simplepeer9.10.0.min.js";App.SOCKET_IO_SRV="http://localhost:3030";App.GOOGLE_APIS="drive-share";App.startTime=new Date;
App.pluginRegistry={"4xAKTrabTpTzahoLthkwPNUn":"plugins/explore.js",ex:"plugins/explore.js",p1:"plugins/p1.js",ac:"plugins/connect.js",acj:"plugins/connectJira.js",ac148:"plugins/cConf-1-4-8.js",ac148cmnt:"plugins/cConf-comments.js",voice:"plugins/voice.js",tips:"plugins/tooltips.js",svgdata:"plugins/svgdata.js",electron:"plugins/electron.js",number:"plugins/number.js",sql:"plugins/sql.js",props:"plugins/props.js",text:"plugins/text.js",anim:"plugins/animation.js",update:"plugins/update.js",trees:"plugins/trees/trees.js",
"import":"plugins/import.js",replay:"plugins/replay.js",anon:"plugins/anonymize.js",tr:"plugins/trello.js",f5:"plugins/rackF5.js",tickets:"plugins/tickets.js",flow:"plugins/flow.js",webcola:"plugins/webcola/webcola.js",rnd:"plugins/random.js",page:"plugins/page.js",gd:"plugins/googledrive.js",tags:"plugins/tags.js"};App.publicPlugin="ex voice tips svgdata number sql props text anim update trees replay anon tickets flow webcola tags".split(" ");
@@ -11671,9 +11674,9 @@ App.prototype.updateDocumentTitle=function(){if(!this.editor.graph.isLightboxVie
App.prototype.getThumbnail=function(b,e){var d=!1;try{var c=!0,g=window.setTimeout(mxUtils.bind(this,function(){c=!1;e(null)}),this.timeout),k=mxUtils.bind(this,function(b){window.clearTimeout(g);c&&e(b)});null==this.thumbImageCache&&(this.thumbImageCache={});var n=this.editor.graph,f=n.backgroundImage,l=null!=n.themes&&"darkTheme"==n.defaultThemeName;if(null!=this.pages&&(l||this.currentPage!=this.pages[0])){var m=n.getGlobalVariable,n=this.createTemporaryGraph(n.getStylesheet());n.setBackgroundImage=
this.editor.graph.setBackgroundImage;var p=this.pages[0];this.currentPage==p?n.setBackgroundImage(f):null!=p.viewState&&null!=p.viewState&&(f=p.viewState.backgroundImage,n.setBackgroundImage(f));n.getGlobalVariable=function(b){return"page"==b?p.getName():"pagenumber"==b?1:m.apply(this,arguments)};n.getGlobalVariable=m;document.body.appendChild(n.container);n.model.setRoot(p.root)}if(mxClient.IS_CHROMEAPP||this.useCanvasForExport)this.editor.exportToCanvas(mxUtils.bind(this,function(b){try{n!=this.editor.graph&&
null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}catch(H){b=null}k(b)}),b,this.thumbImageCache,"#ffffff",function(){k()},null,null,null,null,null,null,n,null,null,null,null,"diagram",null),d=!0;else if(this.canvasSupported&&null!=this.getCurrentFile()){var q=document.createElement("canvas"),t=n.getGraphBounds(),u=n.view.translate,v=n.view.scale;null!=f&&(t=mxRectangle.fromRectangle(t),t.add(new mxRectangle((u.x+f.x)*v,(u.y+f.y)*v,f.width*v,f.height*v)));var x=b/t.width,
-x=Math.min(1,Math.min(3*b/(4*t.height),x)),A=Math.floor(t.x),z=Math.floor(t.y);q.setAttribute("width",Math.ceil(x*(t.width+4)));q.setAttribute("height",Math.ceil(x*(t.height+4)));var B=q.getContext("2d");B.scale(x,x);B.translate(-A,-z);var y=n.background;if(null==y||""==y||y==mxConstants.NONE)y="#ffffff";B.save();B.fillStyle=y;B.fillRect(A,z,Math.ceil(t.width+4),Math.ceil(t.height+4));B.restore();if(null!=f){var C=new Image;C.src=f.src;B.drawImage(C,f.x*x,f.y*x,f.width*x,f.height*x)}var G=new mxJsCanvas(q),
-F=new mxAsyncCanvas(this.thumbImageCache);G.images=this.thumbImageCache.images;var D=new mxImageExport;D.drawShape=function(b,c){b.shape instanceof mxShape&&b.shape.checkBounds()&&(c.save(),c.translate(.5,.5),b.shape.paint(c),c.translate(-.5,-.5),c.restore())};D.drawText=function(b,c){};D.drawState(n.getView().getState(n.model.root),F);F.finish(mxUtils.bind(this,function(){try{D.drawState(n.getView().getState(n.model.root),G),n!=this.editor.graph&&null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}catch(E){q=
-null}k(q)}));d=!0}}catch(E){d=!1,null!=n&&n!=this.editor.graph&&null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}d||window.clearTimeout(g);return d};App.prototype.createBackground=function(){var b=this.createDiv("background");b.style.position="absolute";b.style.background="white";b.style.left="0px";b.style.top="0px";b.style.bottom="0px";b.style.right="0px";mxUtils.setOpacity(b,100);return b};
+x=Math.min(1,Math.min(3*b/(4*t.height),x)),A=Math.floor(t.x),z=Math.floor(t.y);q.setAttribute("width",Math.ceil(x*(t.width+4)));q.setAttribute("height",Math.ceil(x*(t.height+4)));var B=q.getContext("2d");B.scale(x,x);B.translate(-A,-z);var y=n.background;if(null==y||""==y||y==mxConstants.NONE)y="#ffffff";B.save();B.fillStyle=y;B.fillRect(A,z,Math.ceil(t.width+4),Math.ceil(t.height+4));B.restore();if(null!=f){var C=new Image;C.src=f.src;B.drawImage(C,f.x*x,f.y*x,f.width*x,f.height*x)}var D=new mxJsCanvas(q),
+G=new mxAsyncCanvas(this.thumbImageCache);D.images=this.thumbImageCache.images;var E=new mxImageExport;E.drawShape=function(b,c){b.shape instanceof mxShape&&b.shape.checkBounds()&&(c.save(),c.translate(.5,.5),b.shape.paint(c),c.translate(-.5,-.5),c.restore())};E.drawText=function(b,c){};E.drawState(n.getView().getState(n.model.root),G);G.finish(mxUtils.bind(this,function(){try{E.drawState(n.getView().getState(n.model.root),D),n!=this.editor.graph&&null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}catch(F){q=
+null}k(q)}));d=!0}}catch(F){d=!1,null!=n&&n!=this.editor.graph&&null!=n.container.parentNode&&n.container.parentNode.removeChild(n.container)}d||window.clearTimeout(g);return d};App.prototype.createBackground=function(){var b=this.createDiv("background");b.style.position="absolute";b.style.background="white";b.style.left="0px";b.style.top="0px";b.style.bottom="0px";b.style.right="0px";mxUtils.setOpacity(b,100);return b};
(function(){var b=EditorUi.prototype.setMode;App.prototype.setMode=function(e,d){b.apply(this,arguments);null!=this.mode&&(Editor.useLocalStorage=this.mode==App.MODE_BROWSER);if(null!=this.appIcon){var c=this.getCurrentFile();e=null!=c?c.getMode():e;e==App.MODE_GOOGLE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("googleDrive")])),this.appIcon.style.cursor="pointer"):e==App.MODE_DROPBOX?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("dropbox")])),
this.appIcon.style.cursor="pointer"):e==App.MODE_ONEDRIVE?(this.appIcon.setAttribute("title",mxResources.get("openIt",[mxResources.get("oneDrive")])),this.appIcon.style.cursor="pointer"):(this.appIcon.removeAttribute("title"),this.appIcon.style.cursor=e==App.MODE_DEVICE?"pointer":"default")}if(d)try{if(isLocalStorage)localStorage.setItem(".mode",e);else if("undefined"!=typeof Storage){var g=new Date;g.setYear(g.getFullYear()+1);document.cookie="MODE="+e+"; expires="+g.toUTCString()}}catch(k){}}})();
App.prototype.appIconClicked=function(b){if(mxEvent.isAltDown(b))this.showSplash(!0);else{var e=this.getCurrentFile(),d=null!=e?e.getMode():null;d==App.MODE_GOOGLE?null!=e&&null!=e.desc&&null!=e.desc.parents&&0<e.desc.parents.length&&!mxEvent.isShiftDown(b)?this.openLink("https://drive.google.com/drive/folders/"+e.desc.parents[0].id):null!=e&&null!=e.getId()?this.openLink("https://drive.google.com/open?id="+e.getId()):this.openLink("https://drive.google.com/?authuser=0"):d==App.MODE_ONEDRIVE?null!=
@@ -11883,13 +11886,13 @@ function(){c.fireEvent(new mxEventObject("tags"))}),this.tagsWindow.window.setVi
"Window";if(null==this[k]){var l=e?"min"==uiTheme?330:300:240;this[k]=new FindWindow(c,document.body.offsetWidth-(l+20),100,l,e?"min"==uiTheme?304:288:170,e);this[k].window.addListener("show",function(){c.fireEvent(new mxEventObject(f))});this[k].window.addListener("hide",function(){c.fireEvent(new mxEventObject(f))});this[k].window.setVisible(!0)}else this[k].window.setVisible(!this[k].window.isVisible())}),null,null,Editor.ctrlKey+"+F");p.setToggleAction(!0);p.setSelectedCallback(mxUtils.bind(this,
function(){var b=g.isEnabled()?"findReplaceWindow":"findWindow";return null!=this[b]&&this[b].window.isVisible()}));c.actions.put("exportVsdx",new Action(mxResources.get("formatVsdx")+" (beta)...",function(){var b=null==c.pages||1>=c.pages.length;if(b)c.exportVisio();else{var d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxResources.get("formatVsdx"));e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(e);
var f=c.addCheckbox(d,mxResources.get("allPages"),!b,b);f.style.marginBottom="16px";b=new CustomDialog(c,d,mxUtils.bind(this,function(){c.exportVisio(!f.checked)}),null,mxResources.get("export"));c.showDialog(b.container,300,130,!0,!0)}}));isLocalStorage&&null!=localStorage&&"1"!=urlParams.embed&&c.actions.addAction("configuration...",function(){var b=localStorage.getItem(Editor.configurationKey),d=[[mxResources.get("reset"),function(b,d){c.confirm(mxResources.get("areYouSure"),function(){try{mxEvent.isShiftDown(b)?
-(localStorage.removeItem(Editor.settingsKey),localStorage.removeItem(".drawio-config")):(localStorage.removeItem(Editor.configurationKey),c.hideDialog(),c.alert(mxResources.get("restartForChangeRequired")))}catch(F){c.handleError(F)}})},"Shift+Click to Reset Settings"]];EditorUi.isElectronApp||d.push([mxResources.get("share"),function(b,d){if(0<d.value.length)try{var e=JSON.parse(d.value),f=window.location.protocol+"//"+window.location.host+"/"+c.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(e)),
-g=new EmbedDialog(c,f);c.showDialog(g.container,450,240,!0);g.init()}catch(H){c.handleError(H)}else c.handleError({message:mxResources.get("invalidInput")})}]);b=new TextareaDialog(c,mxResources.get("configuration")+":",null!=b?JSON.stringify(JSON.parse(b),null,2):"",function(b){if(null!=b)try{if(0<b.length){var d=JSON.parse(b);localStorage.setItem(Editor.configurationKey,JSON.stringify(d))}else localStorage.removeItem(Editor.configurationKey);c.hideDialog();c.alert(mxResources.get("restartForChangeRequired"))}catch(F){c.handleError(F)}},
+(localStorage.removeItem(Editor.settingsKey),localStorage.removeItem(".drawio-config")):(localStorage.removeItem(Editor.configurationKey),c.hideDialog(),c.alert(mxResources.get("restartForChangeRequired")))}catch(G){c.handleError(G)}})},"Shift+Click to Reset Settings"]];EditorUi.isElectronApp||d.push([mxResources.get("share"),function(b,d){if(0<d.value.length)try{var e=JSON.parse(d.value),f=window.location.protocol+"//"+window.location.host+"/"+c.getSearch()+"#_CONFIG_"+Graph.compress(JSON.stringify(e)),
+g=new EmbedDialog(c,f);c.showDialog(g.container,450,240,!0);g.init()}catch(H){c.handleError(H)}else c.handleError({message:mxResources.get("invalidInput")})}]);b=new TextareaDialog(c,mxResources.get("configuration")+":",null!=b?JSON.stringify(JSON.parse(b),null,2):"",function(b){if(null!=b)try{if(0<b.length){var d=JSON.parse(b);localStorage.setItem(Editor.configurationKey,JSON.stringify(d))}else localStorage.removeItem(Editor.configurationKey);c.hideDialog();c.alert(mxResources.get("restartForChangeRequired"))}catch(G){c.handleError(G)}},
null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/configure-diagram-editor",d);b.textarea.style.width="600px";b.textarea.style.height="380px";c.showDialog(b.container,620,460,!0,!1);b.init()});if(mxClient.IS_CHROMEAPP||isLocalStorage){this.put("language",new Menu(mxUtils.bind(this,function(b,d){var e=mxUtils.bind(this,function(e){var f=""==e?mxResources.get("automatic"):mxLanguageMap[e],g=null;""!=f&&(g=b.addItem(f,null,mxUtils.bind(this,function(){mxSettings.setLanguage(e);
mxSettings.save();mxClient.language=e;mxResources.loadDefaultBundle=!1;mxResources.add(RESOURCE_BASE);c.alert(mxResources.get("restartForChangeRequired"))}),d),(e==mxLanguage||""==e&&null==mxLanguage)&&b.addCheckmark(g,Editor.checkmarkImage));return g});e("");b.addSeparator(d);for(var f in mxLanguageMap)e(f)})));var u=Menus.prototype.createMenubar;Menus.prototype.createMenubar=function(b){var c=u.apply(this,arguments);if(null!=c&&"1"!=urlParams.noLangIcon){var d=this.get("language");if(null!=d){d=
c.addMenu("",d.funct);d.setAttribute("title",mxResources.get("language"));d.style.width="16px";d.style.paddingTop="2px";d.style.paddingLeft="4px";d.style.zIndex="1";d.style.position="absolute";d.style.display="block";d.style.cursor="pointer";d.style.right="17px";"atlas"==uiTheme?(d.style.top="6px",d.style.right="15px"):d.style.top="min"==uiTheme?"2px":"0px";var e=document.createElement("div");e.style.backgroundImage="url("+Editor.globeImage+")";e.style.backgroundPosition="center center";e.style.backgroundRepeat=
"no-repeat";e.style.backgroundSize="19px 19px";e.style.position="absolute";e.style.height="19px";e.style.width="19px";e.style.marginTop="2px";e.style.zIndex="1";d.appendChild(e);mxUtils.setOpacity(d,40);"1"==urlParams.winCtrls&&(d.style.right="95px",d.style.width="19px",d.style.height="19px",d.style.webkitAppRegion="no-drag",e.style.webkitAppRegion="no-drag");if("atlas"==uiTheme||"dark"==uiTheme)d.style.opacity="0.85",d.style.filter="invert(100%)";document.body.appendChild(d);c.langIcon=d}}return c}}c.customLayoutConfig=
-[{layout:"mxHierarchicalLayout",config:{orientation:"west",intraCellSpacing:30,interRankCellSpacing:100,interHierarchySpacing:60,parallelEdgeSpacing:10}}];c.actions.addAction("runLayout",function(){var b=new TextareaDialog(c,"Run Layouts:",JSON.stringify(c.customLayoutConfig,null,2),function(b){if(0<b.length)try{var d=JSON.parse(b);c.executeLayoutList(d);c.customLayoutConfig=d}catch(G){c.handleError(G),null!=window.console&&console.error(G)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/apply-layouts");
+[{layout:"mxHierarchicalLayout",config:{orientation:"west",intraCellSpacing:30,interRankCellSpacing:100,interHierarchySpacing:60,parallelEdgeSpacing:10}}];c.actions.addAction("runLayout",function(){var b=new TextareaDialog(c,"Run Layouts:",JSON.stringify(c.customLayoutConfig,null,2),function(b){if(0<b.length)try{var d=JSON.parse(b);c.executeLayoutList(d);c.customLayoutConfig=d}catch(D){c.handleError(D),null!=window.console&&console.error(D)}},null,null,null,null,null,!0,null,null,"https://www.diagrams.net/doc/faq/apply-layouts");
b.textarea.style.width="600px";b.textarea.style.height="380px";c.showDialog(b.container,620,460,!0,!0);b.init()});var p=this.get("layout"),v=p.funct;p.funct=function(b,d){v.apply(this,arguments);b.addItem(mxResources.get("orgChart"),null,function(){function b(){"undefined"!==typeof mxOrgChartLayout||c.loadingOrgChart||c.isOffline(!0)?k():c.spinner.spin(document.body,mxResources.get("loading"))&&(c.loadingOrgChart=!0,"1"==urlParams.dev?mxscript("js/orgchart/bridge.min.js",function(){mxscript("js/orgchart/bridge.collections.min.js",
function(){mxscript("js/orgchart/OrgChart.Layout.min.js",function(){mxscript("js/orgchart/mxOrgChartLayout.js",k)})})}):mxscript("js/extensions.min.js",k))}var d=null,e=20,f=20,g=!0,k=function(){c.loadingOrgChart=!1;c.spinner.stop();if("undefined"!==typeof mxOrgChartLayout&&null!=d&&g){var b=c.editor.graph,k=new mxOrgChartLayout(b,d,e,f),l=b.getDefaultParent();1<b.model.getChildCount(b.getSelectionCell())&&(l=b.getSelectionCell());k.execute(l);g=!1}},l=document.createElement("div"),m=document.createElement("div");
m.style.marginTop="6px";m.style.display="inline-block";m.style.width="140px";mxUtils.write(m,mxResources.get("orgChartType")+": ");l.appendChild(m);var n=document.createElement("select");n.style.width="200px";n.style.boxSizing="border-box";for(var m=[mxResources.get("linear"),mxResources.get("hanger2"),mxResources.get("hanger4"),mxResources.get("fishbone1"),mxResources.get("fishbone2"),mxResources.get("1ColumnLeft"),mxResources.get("1ColumnRight"),mxResources.get("smart")],p=0;p<m.length;p++){var y=
@@ -11905,8 +11908,8 @@ d.width+", "+d.height+", 'The Title', '"+Graph.compress(mxUtils.getXml(g.encodeC
"",b=new TextareaDialog(c,"Paste Data:",b,function(b){if(0<b.length)try{var d=function(b){function c(b){if(null==p[b]){if(p[b]=!0,null!=f[b]){for(;0<f[b].length;){var e=f[b].pop();c(e)}delete f[b]}}else mxLog.debug(d+": Visited: "+b)}var d=b.parentNode.id,e=b.childNodes;b={};for(var f={},g=null,k={},l=0;l<e.length;l++){var m=e[l];if(null!=m.id&&0<m.id.length)if(null==b[m.id]){b[m.id]=m.id;var n=m.getAttribute("parent");null==n?null!=g?mxLog.debug(d+": Multiple roots: "+m.id):g=m.id:(null==f[n]&&(f[n]=
[]),f[n].push(m.id))}else k[m.id]=m.id}0<Object.keys(k).length?(e=d+": "+Object.keys(k).length+" Duplicates: "+Object.keys(k).join(", "),mxLog.debug(e+" (see console)")):mxLog.debug(d+": Checked");var p={};null==g?mxLog.debug(d+": No root"):(c(g),Object.keys(p).length!=Object.keys(b).length&&(mxLog.debug(d+": Invalid tree: (see console)"),console.log(d+": Invalid tree",f)))};"<"!=b.charAt(0)&&(b=Graph.decompress(b),mxLog.debug("See console for uncompressed XML"),console.log("xml",b));var e=mxUtils.parseXml(b),
f=c.getPagesForNode(e.documentElement,"mxGraphModel");if(null!=f&&0<f.length)try{var g=c.getHashValueForPages(f);mxLog.debug("Checksum: ",g)}catch(H){mxLog.debug("Error: ",H.message)}else mxLog.debug("No pages found for checksum");var k=e.getElementsByTagName("root");for(b=0;b<k.length;b++)d(k[b]);mxLog.show()}catch(H){c.handleError(H),null!=window.console&&console.error(H)}});b.textarea.style.width="600px";b.textarea.style.height="380px";c.showDialog(b.container,620,460,!0,!0);b.init()}));var x=
-null;c.actions.addAction("testDiff",mxUtils.bind(this,function(){if(null!=c.pages){var b=new TextareaDialog(c,"Diff/Sync:","",function(b){var d=c.getCurrentFile();if(0<b.length&&null!=d)try{var e=JSON.parse(b);d.patch([e],null,!0);c.hideDialog()}catch(F){c.handleError(F)}},null,"Close",null,null,null,!0,null,"Patch",null,[["Snapshot",function(d,e){x=c.getPagesForNode(mxUtils.parseXml(c.getFileData(!0)).documentElement);b.textarea.value="Snapshot updated "+(new Date).toLocaleString()}],["Diff",function(d,
-e){try{b.textarea.value=JSON.stringify(c.diffPages(x,c.pages),null,2)}catch(G){c.handleError(G)}}]]);b.textarea.style.width="600px";b.textarea.style.height="380px";null==x?(x=c.getPagesForNode(mxUtils.parseXml(c.getFileData(!0)).documentElement),b.textarea.value="Snapshot created "+(new Date).toLocaleString()):b.textarea.value=JSON.stringify(c.diffPages(x,c.pages),null,2);c.showDialog(b.container,620,460,!0,!0);b.init()}else c.alert("No pages")}));c.actions.addAction("testInspect",mxUtils.bind(this,
+null;c.actions.addAction("testDiff",mxUtils.bind(this,function(){if(null!=c.pages){var b=new TextareaDialog(c,"Diff/Sync:","",function(b){var d=c.getCurrentFile();if(0<b.length&&null!=d)try{var e=JSON.parse(b);d.patch([e],null,!0);c.hideDialog()}catch(G){c.handleError(G)}},null,"Close",null,null,null,!0,null,"Patch",null,[["Snapshot",function(d,e){x=c.getPagesForNode(mxUtils.parseXml(c.getFileData(!0)).documentElement);b.textarea.value="Snapshot updated "+(new Date).toLocaleString()}],["Diff",function(d,
+e){try{b.textarea.value=JSON.stringify(c.diffPages(x,c.pages),null,2)}catch(D){c.handleError(D)}}]]);b.textarea.style.width="600px";b.textarea.style.height="380px";null==x?(x=c.getPagesForNode(mxUtils.parseXml(c.getFileData(!0)).documentElement),b.textarea.value="Snapshot created "+(new Date).toLocaleString()):b.textarea.value=JSON.stringify(c.diffPages(x,c.pages),null,2);c.showDialog(b.container,620,460,!0,!0);b.init()}else c.alert("No pages")}));c.actions.addAction("testInspect",mxUtils.bind(this,
function(){console.log(c,g.getModel())}));c.actions.addAction("testXmlImageExport",mxUtils.bind(this,function(){var b=new mxImageExport,c=g.getGraphBounds(),d=g.view.scale,e=mxUtils.createXmlDocument(),f=e.createElement("output");e.appendChild(f);e=new mxXmlCanvas2D(f);e.translate(Math.floor((1-c.x)/d),Math.floor((1-c.y)/d));e.scale(1/d);var k=0,l=e.save;e.save=function(){k++;l.apply(this,arguments)};var m=e.restore;e.restore=function(){k--;m.apply(this,arguments)};var n=b.drawShape;b.drawShape=function(b){mxLog.debug("entering shape",
b,k);n.apply(this,arguments);mxLog.debug("leaving shape",b,k)};b.drawState(g.getView().getState(g.model.root),e);mxLog.show();mxLog.debug(mxUtils.getXml(f));mxLog.debug("stateCounter",k)}));c.actions.addAction("testShowConsole",function(){mxLog.isVisible()?mxLog.window.fit():mxLog.show();mxLog.window.div.style.zIndex=mxPopupMenu.prototype.zIndex-2});this.put("testDevelop",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,"createSidebarEntry showBoundingBox - testCheckFile testDiff - testInspect - testXmlImageExport - testShowConsole".split(" "),
c)})))}c.actions.addAction("shapes...",function(){mxClient.IS_CHROMEAPP||!c.isOffline()?c.showDialog((new MoreShapesDialog(c,!0)).container,640,isLocalStorage?mxClient.IS_IOS?480:460:440,!0,!0):c.showDialog((new MoreShapesDialog(c,!1)).container,360,isLocalStorage?mxClient.IS_IOS?300:280:260,!0,!0)});c.actions.put("createShape",new Action(mxResources.get("shape")+"...",function(b){g.isEnabled()&&(b=new mxCell("",new mxGeometry(0,0,120,120),c.defaultCustomShapeStyle),b.vertex=!0,b=new EditShapeDialog(c,
@@ -11963,7 +11966,7 @@ d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+"...",null,function(){c.s
null,function(){},d,null,!1);null!=c.dropbox?b.addItem(mxResources.get("dropbox")+"...",null,function(){c.pickLibrary(App.MODE_DROPBOX)},d):f&&"function"===typeof window.DropboxClient&&b.addItem(mxResources.get("dropbox")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);null!=c.gitHub&&b.addItem(mxResources.get("github")+"...",null,function(){c.pickLibrary(App.MODE_GITHUB)},d);null!=c.gitLab&&b.addItem(mxResources.get("gitlab")+"...",null,function(){c.pickLibrary(App.MODE_GITLAB)},
d);null!=c.notion&&(b.addSeparator(d),b.addItem(mxResources.get("notion")+"...",null,function(){c.pickLibrary(App.MODE_NOTION)},d));null!=c.trello?b.addItem(mxResources.get("trello")+"...",null,function(){c.pickLibrary(App.MODE_TRELLO)},d):m&&"function"===typeof window.TrelloClient&&b.addItem(mxResources.get("trello")+" ("+mxResources.get("loading")+"...)",null,function(){},d,null,!1);b.addSeparator(d);isLocalStorage&&"0"!=urlParams.browser&&b.addItem(mxResources.get("browser")+"...",null,function(){c.pickLibrary(App.MODE_BROWSER)},
d);"1"!=urlParams.noDevice&&b.addItem(mxResources.get("device")+"...",null,function(){c.pickLibrary(App.MODE_DEVICE)},d);c.isOffline()||(b.addSeparator(d),b.addItem(mxResources.get("url")+"...",null,function(){var b=new FilenameDialog(c,"",mxResources.get("open"),function(b){if(null!=b&&0<b.length&&c.spinner.spin(document.body,mxResources.get("loading"))){var d=b;c.editor.isCorsEnabledForUrl(b)||(d=PROXY_URL+"?url="+encodeURIComponent(b));mxUtils.get(d,function(d){if(200<=d.getStatus()&&299>=d.getStatus()){c.spinner.stop();
-try{c.loadLibrary(new UrlLibrary(this,d.getText(),b))}catch(E){c.handleError(E,mxResources.get("errorLoadingFile"))}}else c.spinner.stop(),c.handleError(null,mxResources.get("errorLoadingFile"))},function(){c.spinner.stop();c.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));c.showDialog(b.container,300,80,!0,!0);b.init()},d));"1"==urlParams.confLib&&(b.addSeparator(d),b.addItem(mxResources.get("confluenceCloud")+"...",null,function(){c.showRemotelyStoredLibrary(mxResources.get("libraries"))},
+try{c.loadLibrary(new UrlLibrary(this,d.getText(),b))}catch(F){c.handleError(F,mxResources.get("errorLoadingFile"))}}else c.spinner.stop(),c.handleError(null,mxResources.get("errorLoadingFile"))},function(){c.spinner.stop();c.handleError(null,mxResources.get("errorLoadingFile"))})}},mxResources.get("url"));c.showDialog(b.container,300,80,!0,!0);b.init()},d));"1"==urlParams.confLib&&(b.addSeparator(d),b.addItem(mxResources.get("confluenceCloud")+"...",null,function(){c.showRemotelyStoredLibrary(mxResources.get("libraries"))},
d))})));this.put("edit",new Menu(mxUtils.bind(this,function(b,c){this.addMenuItems(b,"undo redo - cut copy copyAsImage paste delete - duplicate - findReplace - editData editTooltip - editStyle editGeometry - edit - editLink openLink - selectVertices selectEdges selectAll selectNone - lockUnlock".split(" "))})));p=c.actions.addAction("comments",mxUtils.bind(this,function(){if(null==this.commentsWindow)this.commentsWindow=new CommentsWindow(c,document.body.offsetWidth-380,120,300,350),this.commentsWindow.window.addListener("show",
function(){c.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.addListener("hide",function(){c.fireEvent(new mxEventObject("comments"))}),this.commentsWindow.window.setVisible(!0),c.fireEvent(new mxEventObject("comments"));else{var b=!this.commentsWindow.window.isVisible();this.commentsWindow.window.setVisible(b);this.commentsWindow.refreshCommentsTime();b&&this.commentsWindow.hasError&&this.commentsWindow.refreshComments()}}));p.setToggleAction(!0);p.setSelectedCallback(mxUtils.bind(this,
function(){return null!=this.commentsWindow&&this.commentsWindow.window.isVisible()}));c.editor.addListener("fileLoaded",mxUtils.bind(this,function(){null!=this.commentsWindow&&(this.commentsWindow.destroy(),this.commentsWindow=null)}));var p=this.get("viewPanels"),z=p.funct;p.funct=function(b,d){z.apply(this,arguments);c.menus.addMenuItems(b,["tags"],d);c.commentsSupported()&&c.menus.addMenuItems(b,["comments"],d)};this.put("view",new Menu(mxUtils.bind(this,function(b,d){this.addMenuItems(b,(null!=
@@ -12065,7 +12068,7 @@ d,e,n,f,l),mxUtils.bind(this,function(b){return this.isTreeEdge(b)}))};Graph.pro
null!=c&&0<c.length&&(c=c[c.length-1],null!=c)))){if(c.y==b.y&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_SOUTH;if(c.y==b.y+b.height&&Math.abs(c.x-b.getCenterX())<b.width/2)return mxConstants.DIRECTION_NORTH;if(c.x>b.getCenterX())return mxConstants.DIRECTION_WEST}}return mxConstants.DIRECTION_EAST}function l(b,c){c=null!=c?c:!0;v.model.beginUpdate();try{var d=v.model.getParent(b),e=v.getIncomingTreeEdges(b),g=v.cloneCells([e[0],b]);v.model.setTerminal(g[0],v.model.getTerminal(e[0],
!0),!0);var k=f(b),l=d.geometry;k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?g[1].geometry.x+=c?b.geometry.width+10:-g[1].geometry.width-10:g[1].geometry.y+=c?b.geometry.height+10:-g[1].geometry.height-10;v.view.currentRoot!=d&&(g[1].geometry.x-=l.x,g[1].geometry.y-=l.y);var m=v.view.getState(b),n=v.view.scale;if(null!=m){var p=mxRectangle.fromRectangle(m);k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH?p.x+=(c?b.geometry.width+10:-g[1].geometry.width-10)*n:p.y+=(c?
b.geometry.height+10:-g[1].geometry.height-10)*n;var q=v.getOutgoingTreeEdges(v.model.getTerminal(e[0],!0));if(null!=q){for(var t=k==mxConstants.DIRECTION_SOUTH||k==mxConstants.DIRECTION_NORTH,y=l=e=0;y<q.length;y++){var u=v.model.getTerminal(q[y],!1);if(k==f(u)){var x=v.view.getState(u);u!=b&&null!=x&&(t&&c!=x.getCenterX()<m.getCenterX()||!t&&c!=x.getCenterY()<m.getCenterY())&&mxUtils.intersects(p,x)&&(e=10+Math.max(e,(Math.min(p.x+p.width,x.x+x.width)-Math.max(p.x,x.x))/n),l=10+Math.max(l,(Math.min(p.y+
-p.height,x.y+x.height)-Math.max(p.y,x.y))/n))}}t?l=0:e=0;for(y=0;y<q.length;y++)if(u=v.model.getTerminal(q[y],!1),k==f(u)&&(x=v.view.getState(u),u!=b&&null!=x&&(t&&c!=x.getCenterX()<m.getCenterX()||!t&&c!=x.getCenterY()<m.getCenterY()))){var E=[];v.traverse(x.cell,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&E.push(c);(null==c||d)&&E.push(b);return null==c||d});v.moveCells(E,(c?1:-1)*e,(c?1:-1)*l)}}}return v.addCells(g,d)}finally{v.model.endUpdate()}}function m(b){v.model.beginUpdate();try{var c=
+p.height,x.y+x.height)-Math.max(p.y,x.y))/n))}}t?l=0:e=0;for(y=0;y<q.length;y++)if(u=v.model.getTerminal(q[y],!1),k==f(u)&&(x=v.view.getState(u),u!=b&&null!=x&&(t&&c!=x.getCenterX()<m.getCenterX()||!t&&c!=x.getCenterY()<m.getCenterY()))){var F=[];v.traverse(x.cell,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&F.push(c);(null==c||d)&&F.push(b);return null==c||d});v.moveCells(F,(c?1:-1)*e,(c?1:-1)*l)}}}return v.addCells(g,d)}finally{v.model.endUpdate()}}function m(b){v.model.beginUpdate();try{var c=
f(b),d=v.getIncomingTreeEdges(b),e=v.cloneCells([d[0],b]);v.model.setTerminal(d[0],e[1],!1);v.model.setTerminal(e[0],e[1],!0);v.model.setTerminal(e[0],b,!1);var g=v.model.getParent(b),k=g.geometry,l=[];v.view.currentRoot!=g&&(e[1].geometry.x-=k.x,e[1].geometry.y-=k.y);v.traverse(b,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&l.push(c);(null==c||d)&&l.push(b);return null==c||d});var m=b.geometry.width+40,n=b.geometry.height+40;c==mxConstants.DIRECTION_SOUTH?m=0:c==mxConstants.DIRECTION_NORTH?
(m=0,n=-n):c==mxConstants.DIRECTION_WEST?(m=-m,n=0):c==mxConstants.DIRECTION_EAST&&(n=0);v.moveCells(l,m,n);return v.addCells(e,g)}finally{v.model.endUpdate()}}function p(b,c){v.model.beginUpdate();try{var d=v.model.getParent(b),e=v.getIncomingTreeEdges(b),g=f(b);0==e.length&&(e=[v.createEdge(d,null,"",null,null,v.createCurrentEdgeStyle())],g=c);var k=v.cloneCells([e[0],b]);v.model.setTerminal(k[0],b,!0);if(null==v.model.getTerminal(k[0],!1)){v.model.setTerminal(k[0],k[1],!1);var l=v.getCellStyle(k[1]).newEdgeStyle;
if(null!=l)try{var m=JSON.parse(l),n;for(n in m)v.setCellStyles(n,m[n],[k[0]]),"edgeStyle"==n&&"elbowEdgeStyle"==m[n]&&v.setCellStyles("elbow",g==mxConstants.DIRECTION_SOUTH||g==mxConstants.DIRECTION_NOTH?"vertical":"horizontal",[k[0]])}catch(pa){}}var e=v.getOutgoingTreeEdges(b),p=d.geometry,l=[];v.view.currentRoot==d&&(p=new mxRectangle);for(m=0;m<e.length;m++){var q=v.model.getTerminal(e[m],!1);null!=q&&l.push(q)}var t=v.view.getBounds(l),y=v.view.translate,u=v.view.scale;g==mxConstants.DIRECTION_SOUTH?
@@ -12081,11 +12084,11 @@ f;return z.apply(this,arguments)};u.hoverIcons.getStateAt=function(c,d,e){return
v.getIncomingTreeEdges(l[f]),k=v.getIncomingTreeEdges(c[f]);if(0==m.length&&0<k.length){var n=this.cloneCell(k[0]);this.addEdge(n,v.getDefaultParent(),this.model.getTerminal(k[0],!0),l[f])}}}finally{this.model.endUpdate()}return l};var y=v.moveCells;v.moveCells=function(c,d,e,f,g,k,l){var m=null;this.model.beginUpdate();try{var n=g,p=this.getCurrentCellStyle(g);if(null!=c&&b(g)&&"1"==mxUtils.getValue(p,"treeFolding","0")){for(var q=0;q<c.length;q++)if(b(c[q])||v.model.isEdge(c[q])&&null==v.model.getTerminal(c[q],
!0)){g=v.model.getParent(c[q]);break}if(null!=n&&g!=n&&null!=this.view.getState(c[0])){var t=v.getIncomingTreeEdges(c[0]);if(0<t.length){var u=v.view.getState(v.model.getTerminal(t[0],!0));if(null!=u){var x=v.view.getState(n);null!=x&&(d=(x.getCenterX()-u.getCenterX())/v.view.scale,e=(x.getCenterY()-u.getCenterY())/v.view.scale)}}}}m=y.apply(this,arguments);if(null!=m&&null!=c&&m.length==c.length)for(q=0;q<m.length;q++)if(this.model.isEdge(m[q]))b(n)&&0>mxUtils.indexOf(m,this.model.getTerminal(m[q],
!0))&&this.model.setTerminal(m[q],n,!0);else if(b(c[q])&&(t=v.getIncomingTreeEdges(c[q]),0<t.length))if(!f)b(n)&&0>mxUtils.indexOf(c,this.model.getTerminal(t[0],!0))&&this.model.setTerminal(t[0],n,!0);else if(0==v.getIncomingTreeEdges(m[q]).length){p=n;if(null==p||p==v.model.getParent(c[q]))p=v.model.getTerminal(t[0],!0);f=this.cloneCell(t[0]);this.addEdge(f,v.getDefaultParent(),p,m[q])}}finally{this.model.endUpdate()}return m};if(null!=u.sidebar){var C=u.sidebar.dropAndConnect;u.sidebar.dropAndConnect=
-function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=C.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var G={88:u.actions.get("selectChildren"),84:u.actions.get("selectSubtree"),80:u.actions.get("selectParent"),83:u.actions.get("selectSiblings")},F=u.onKeyDown;u.onKeyDown=function(c){try{if(v.isEnabled()&&
+function(c,d,e,f){var g=v.model,k=null;g.beginUpdate();try{if(k=C.apply(this,arguments),b(c))for(var l=0;l<k.length;l++)if(g.isEdge(k[l])&&null==g.getTerminal(k[l],!0)){g.setTerminal(k[l],c,!0);var m=v.getCellGeometry(k[l]);m.points=null;null!=m.getTerminalPoint(!0)&&m.setTerminalPoint(null,!0)}}finally{g.endUpdate()}return k}}var D={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(c){try{if(v.isEnabled()&&
!v.isEditing()&&b(v.getSelectionCell())&&1==v.getSelectionCount()){var d=null;0<v.getIncomingTreeEdges(v.getSelectionCell()).length&&(9==c.which?d=mxEvent.isShiftDown(c)?m(v.getSelectionCell()):p(v.getSelectionCell()):13==c.which&&(d=l(v.getSelectionCell(),!mxEvent.isShiftDown(c))));if(null!=d&&0<d.length)1==d.length&&v.model.isEdge(d[0])?v.setSelectionCell(v.model.getTerminal(d[0],!1)):v.setSelectionCell(d[d.length-1]),null!=u.hoverIcons&&u.hoverIcons.update(v.view.getState(v.getSelectionCell())),
-v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=G[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(t(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(t(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(t(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(t(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
-mxEvent.consume(c))}}catch(J){u.handleError(J)}mxEvent.isConsumed(c)||F.apply(this,arguments)};var D=v.connectVertex;v.connectVertex=function(c,d,e,g,k,n,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var y=f(c),u=y==mxConstants.DIRECTION_EAST||y==mxConstants.DIRECTION_WEST,x=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return y==d||0==t.length?p(c,d):u==x?m(c):l(c,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return D.apply(this,arguments)};v.getSubtree=function(c){var e=
-[c];!d(c)&&!b(c)||n(c)||v.traverse(c,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var E=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){E.apply(this,arguments);(d(this.state.cell)||b(this.state.cell))&&!n(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
+v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.isAltDown(c)&&mxEvent.isShiftDown(c)){var e=D[c.keyCode];null!=e&&(e.funct(c),mxEvent.consume(c))}else 37==c.keyCode?(t(v.getSelectionCell(),mxConstants.DIRECTION_WEST),mxEvent.consume(c)):38==c.keyCode?(t(v.getSelectionCell(),mxConstants.DIRECTION_NORTH),mxEvent.consume(c)):39==c.keyCode?(t(v.getSelectionCell(),mxConstants.DIRECTION_EAST),mxEvent.consume(c)):40==c.keyCode&&(t(v.getSelectionCell(),mxConstants.DIRECTION_SOUTH),
+mxEvent.consume(c))}}catch(K){u.handleError(K)}mxEvent.isConsumed(c)||G.apply(this,arguments)};var E=v.connectVertex;v.connectVertex=function(c,d,e,g,k,n,q){var t=v.getIncomingTreeEdges(c);if(b(c)){var y=f(c),u=y==mxConstants.DIRECTION_EAST||y==mxConstants.DIRECTION_WEST,x=d==mxConstants.DIRECTION_EAST||d==mxConstants.DIRECTION_WEST;return y==d||0==t.length?p(c,d):u==x?m(c):l(c,d!=mxConstants.DIRECTION_NORTH&&d!=mxConstants.DIRECTION_WEST)}return E.apply(this,arguments)};v.getSubtree=function(c){var e=
+[c];!d(c)&&!b(c)||n(c)||v.traverse(c,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var F=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){F.apply(this,arguments);(d(this.state.cell)||b(this.state.cell))&&!n(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(b){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(b);
this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(b)})))};var H=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){H.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 I=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){I.apply(this,
arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var L=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){L.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var d=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var b=d.apply(this,arguments),e=this.graph;return b.concat([this.addEntry("tree container",
@@ -12106,16 +12109,17 @@ p.geometry.relative=!0;p.edge=!0;c.insertEdge(p,!0);m.insertEdge(p,!1);b.insert(
c.geometry.setTerminalPoint(new mxPoint(0,0),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree sub sections",function(){var b=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");
c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);var d=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");e.geometry.setTerminalPoint(new mxPoint(110,-40),!0);e.geometry.relative=
!0;e.edge=!0;d.insertEdge(e,!1);return sb.createVertexTemplateFromCells([c,e,b,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function b(b,d){var e=b.editor.graph;e.popupMenuHandler.hideMenu();null==b.formatWindow?(b.formatWindow=new c(b,mxResources.get("format"),"1"==urlParams.sketch?Math.max(10,b.diagramContainer.clientWidth-241):Math.max(10,b.diagramContainer.clientWidth-248),"1"==urlParams.winCtrls&&"1"==urlParams.sketch?80:60,240,Math.min(566,e.container.clientHeight-10),function(c){var d=b.createFormat(c);d.init();b.addListener("darkModeChanged",mxUtils.bind(this,function(){d.refresh()}));
-return d}),b.formatWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.formatWindow.window.fit()})),b.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),b.formatWindow.window.setVisible(!0)):b.formatWindow.window.setVisible(null!=d?d:!b.formatWindow.window.isVisible())}function e(b,d){var e=b.editor.graph;e.popupMenuHandler.hideMenu();new mxRectangle;if(null==b.sidebarWindow){var f=Math.min(e.container.clientWidth-10,218);b.sidebarWindow=new c(b,mxResources.get("shapes"),
-10,"1"==urlParams.sketch&&"1"!=urlParams.embedInline?15:56,f-6,Math.min(650,e.container.clientHeight-30),function(c){function d(d,e){var f=b.menus.get(d),k=g.addMenu(e,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));k.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;cusor:pointer;";k.className="geTitle";c.appendChild(k);return k}var e=document.createElement("div");e.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";
-e.className="geTitle";var f=document.createElement("span");f.style.fontSize="18px";f.style.marginRight="5px";f.innerHTML="+";e.appendChild(f);mxUtils.write(e,mxResources.get("moreShapes"));c.appendChild(e);mxEvent.addListener(e,"click",function(){b.actions.get("shapes").funct()});var g=new Menubar(b,c);!Editor.enableCustomLibraries||"1"==urlParams.embed&&"1"!=urlParams.libraries?e.style.bottom="0":null!=b.actions.get("newLibrary")?(e=document.createElement("div"),e.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;",
-e.className="geTitle",f=document.createElement("span"),f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("newLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("newLibrary").funct),e=document.createElement("div"),e.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;",e.className="geTitle",f=document.createElement("span"),
-f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("openLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("openLibrary").funct)):(e=d("newLibrary",mxResources.get("newLibrary")),e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="0",e=d("openLibraryFrom",mxResources.get("openLibraryFrom")),e.style.borderLeft="1px solid lightgray",e.style.boxSizing="border-box",e.style.paddingRight=
-"6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="50%");c.appendChild(b.sidebar.container);c.style.overflow="hidden";return c});b.sidebarWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.sidebarWindow.window.fit()}));b.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);b.sidebarWindow.window.setVisible(!0);b.getLocalData("sidebar",function(c){b.sidebar.showEntries(c,null,!0)});b.restoreLibraries()}else b.sidebarWindow.window.setVisible(null!=d?d:!b.sidebarWindow.window.isVisible())}
-if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var d=0;try{d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}catch(y){}var c=function(b,c,d,e,f,g,k){var l=document.createElement("div");l.className="geSidebarContainer";l.style.position="absolute";l.style.width="100%";l.style.height="100%";l.style.border="1px solid whiteSmoke";l.style.overflowX="hidden";l.style.overflowY=
-"auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=this.table.firstChild.firstChild.firstChild;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-e.clientWidth-2));
-c=Math.max(0,Math.min(c,d-e.clientHeight-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;
-mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke-width="2" style="stroke-opacity:0.4" stroke="#ffffff"/><path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
+return d}),b.formatWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.formatWindow.window.fit()})),b.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),b.formatWindow.window.setVisible(!0)):b.formatWindow.window.setVisible(null!=d?d:!b.formatWindow.window.isVisible())}function e(b,d){var e=b.editor.graph;e.popupMenuHandler.hideMenu();new mxRectangle;if(null==b.sidebarWindow){var f=Math.min(e.container.clientWidth-10,218),g=Math.min(e.container.clientHeight-40,650);b.sidebarWindow=
+new c(b,mxResources.get("shapes"),"1"==urlParams.sketch&&"1"!=urlParams.embedInline?66:10,"1"==urlParams.sketch&&"1"!=urlParams.embedInline?Math.max(30,(e.container.clientHeight-g)/2):56,f-6,g-6,function(c){function d(d,e){var f=b.menus.get(d),k=g.addMenu(e,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));k.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;cusor:pointer;";k.className="geTitle";
+c.appendChild(k);return k}var e=document.createElement("div");e.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";e.className="geTitle";var f=document.createElement("span");f.style.fontSize="18px";f.style.marginRight="5px";f.innerHTML="+";e.appendChild(f);mxUtils.write(e,mxResources.get("moreShapes"));c.appendChild(e);mxEvent.addListener(e,"click",function(){b.actions.get("shapes").funct()});
+var g=new Menubar(b,c);!Editor.enableCustomLibraries||"1"==urlParams.embed&&"1"!=urlParams.libraries?e.style.bottom="0":null!=b.actions.get("newLibrary")?(e=document.createElement("div"),e.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;",e.className="geTitle",f=document.createElement("span"),f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("newLibrary")),e.appendChild(f),
+c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("newLibrary").funct),e=document.createElement("div"),e.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;",e.className="geTitle",f=document.createElement("span"),f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("openLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,
+"click",b.actions.get("openLibrary").funct)):(e=d("newLibrary",mxResources.get("newLibrary")),e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="0",e=d("openLibraryFrom",mxResources.get("openLibraryFrom")),e.style.borderLeft="1px solid lightgray",e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="50%");c.appendChild(b.sidebar.container);c.style.overflow="hidden";
+return c});b.sidebarWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.sidebarWindow.window.fit()}));b.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);b.sidebarWindow.window.setVisible(!0);b.getLocalData("sidebar",function(c){b.sidebar.showEntries(c,null,!0)});b.restoreLibraries()}else b.sidebarWindow.window.setVisible(null!=d?d:!b.sidebarWindow.window.isVisible())}if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=
+null;else{var d=0;try{d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}catch(y){}var c=function(b,c,d,e,f,g,k){var l=document.createElement("div");l.className="geSidebarContainer";l.style.position="absolute";l.style.width="100%";l.style.height="100%";l.style.border="1px solid whiteSmoke";l.style.overflowX="hidden";l.style.overflowY="auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);
+this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=this.table.firstChild.firstChild.firstChild;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-e.clientWidth-2));c=Math.max(0,Math.min(c,d-e.clientHeight-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&
+(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;
+mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke-width="2" style="stroke-opacity:0.4" stroke="#ffffff"/><path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
"0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight="1"==urlParams.sketch?1:46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert="1"!=urlParams.sketch&&!mxClient.IS_IOS&&!mxClient.IS_ANDROID;
EditorUi.prototype.setDarkMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(b);null==urlParams.dark&&(mxSettings.settings.darkMode=b,mxSettings.save());this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var g=document.createElement("link");g.setAttribute("rel","stylesheet");g.setAttribute("href",STYLE_PATH+"/dark.css");g.setAttribute("charset","UTF-8");g.setAttribute("type",
@@ -12154,50 +12158,50 @@ new ParseDialog(c,"Insert from Text");c.showDialog(b.container,620,420,!0,!1);b.
b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,
d){var e=c.getCurrentFile();c.menus.addSubmenu("extras",b,d,mxResources.get("preferences"));b.addSeparator(d);if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)c.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),d);else if("1"==urlParams.embed||c.mode==App.MODE_ATLAS){"1"!=urlParams.noSaveBtn&&"1"!=urlParams.embedInline&&c.menus.addMenuItems(b,["-","save"],d);if("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit||c.mode==App.MODE_ATLAS)c.menus.addMenuItems(b,
["saveAndExit"],d),null!=e&&e.isRevisionHistorySupported()&&c.menus.addMenuItems(b,["revisionHistory"],d);b.addSeparator(d)}else c.mode==App.MODE_ATLAS?c.menus.addMenuItems(b,["save","synchronize","-"],d):"1"!=urlParams.noFileMenu&&(c.menus.addMenuItems(b,["new"],d),c.menus.addSubmenu("openFrom",b,d),isLocalStorage&&this.addSubmenu("openRecent",b,d),"1"!=urlParams.sketch&&(b.addSeparator(d),null!=e&&e.constructor==DriveFile&&c.menus.addMenuItems(b,["share"],d),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,["synchronize"],d)),b.addSeparator(d),c.menus.addSubmenu("save",b,d));c.menus.addSubmenu("exportAs",b,d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(b,["import"],d):"1"!=urlParams.noFileMenu&&c.menus.addSubmenu("importFrom",b,d);"1"!=urlParams.sketch&&(c.menus.addMenuItems(b,["-","outline"],d),c.commentsSupported()&&c.menus.addMenuItems(b,["comments"],d));c.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),
-d);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(b,["print"],d);null!=e&&null!=c.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():c.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(d);c.menus.addSubmenu("help",b,d);"1"==urlParams.embed||c.mode==App.MODE_ATLAS?"1"==urlParams.noExitBtn&&c.mode!=App.MODE_ATLAS||c.menus.addMenuItems(b,["-","exit"],d):"1"!=urlParams.noFileMenu&&
-c.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,d){var e=c.getCurrentFile();null!=e&&e.constructor==DriveFile?c.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],d):(c.menus.addMenuItems(b,["save","saveAs","-","rename"],d),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],d):c.menus.addMenuItems(b,["makeCopy"],d));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,["-","synchronize"],d);c.menus.addMenuItems(b,["-","autosave"],d);null!=e&&e.isRevisionHistorySupported()&&c.menus.addMenuItems(b,["-","revisionHistory"],d)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,d){k.funct(b,d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(b,["publishLink"],d);c.mode!=App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(d),c.menus.addSubmenu("embed",
-b,d))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,d){c.menus.addInsertTableCellItem(b,d)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,e){m.funct(b,e);this.addMenuItems(b,["editDiagram"],e);"1"==urlParams.sketch&&(b.addSeparator(e),b.addItem(mxResources.get("csv")+"...",null,function(){c.showImportCsvDialog()},e,null,mxUtils.bind(d,d.isEnabled)),c.addInsertMenuItems(b,e,["formatSql","-","fromText","plantUml",
-"mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,d){"1"!=urlParams.embed&&"1"!=urlParams.extAuth&&c.mode!=App.MODE_ATLAS&&c.menus.addSubmenu("theme",b,d);null!=l&&c.menus.addSubmenu("language",b,d);c.menus.addSubmenu("units",b,d);c.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),d);"1"!=urlParams.embedInline&&("1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&c.mode!=App.MODE_ATLAS&&c.menus.addMenuItems(b,
-["-","showStartScreen","search","scratchpad"],d),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],d));b.addSeparator(d);c.mode!=App.MODE_ATLAS&&c.menus.addMenuItem(b,"configuration",d);!c.isOfflineApp()&&isLocalStorage&&c.mode!=App.MODE_ATLAS&&c.menus.addMenuItem(b,"plugins",d);c.mode!=App.MODE_ATLAS&&this.addMenuItems(b,["-","fullscreen"],d);(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"],d);"1"==urlParams.sketch&&
-this.addMenuItems(b,["-","toggleSketchMode"],d);b.addSeparator(d)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,d){c.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),d)})));mxUtils.bind(this,function(){var b=this.get("insert"),d=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(c.menus.addMenuItems(b,["insertFreehand"],e),c.insertTemplateEnabled&&!c.isOffline()&&c.menus.addMenuItems(b,["insertTemplate"],e)):(d.apply(this,
-arguments),c.menus.addSubmenu("table",b,e),b.addSeparator(e));c.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,d,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(c,e,f);c.showDialog(b.container,620,420,!0,!1);b.init()}),d)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,c){for(var d=0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,
-mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(e,f){0<c.getSelectionCount()?(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):
-null!=d.parentNode&&d.parentNode.removeChild(d)}))};var z=!1;EditorUi.prototype.initFormatWindow=function(){if(!z){z=!0;this.formatWindow.window.setClosable(!1);var b=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){b.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width="240px",this.div.style.left=Math.max(0,
-parseInt(this.div.style.left)-150)+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(b){mxEvent.getSource(b)==this.formatWindow.window.title&&this.formatWindow.window.toggleMinimized()}))}};var B=EditorUi.prototype.init;EditorUi.prototype.init=function(){function c(b,c,d){var e=m.menus.get(b),f=t.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),q);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";
-f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));m.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage=
-"url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition="right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle=
-"none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin="0px");null!=m.statusContainer?p.insertBefore(k,m.statusContainer):p.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",
-function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign=
-"top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);
-return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&(Y.style.left=58>S.offsetTop-S.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var e=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=e}q=p.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>d||"1"==urlParams.sketch,k=null;b||(k=c("diagram"));e=b?c("diagram",null,Editor.drawLogoImage):null;null!=e&&(k=e);
-g([k,f(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),b?Editor.shapesImage:null),f(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),b?Editor.formatImage:null)],b?60:null);e=c("insert",!0,b?U:null);g([e,f(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),b?Editor.trashImage:
-null)],b?60:null);411<=d&&(g([ea,ga],60),520<=d&&g([ma,640<=d?f("",ia.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ia,Editor.zoomInImage):null,640<=d?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,Editor.zoomOutImage):null],60))}null!=k&&(mxEvent.disableContextMenu(k),mxEvent.addGestureListeners(k,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&m.appIconClicked(b)}),
-null,null));e=m.menus.get("language");null!=e&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=d&&"1"!=urlParams.sketch?(null==la&&(e=t.addMenu("",e.funct),e.setAttribute("title",mxResources.get("language")),e.className="geToolbarButton",e.style.backgroundImage="url("+Editor.globeImage+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.position="absolute",e.style.height="24px",e.style.width="24px",e.style.zIndex="1",
-e.style.right="8px",e.style.cursor="pointer",e.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(e),la=e),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=la&&(la.parentNode.removeChild(la),la=null))}B.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:null!=mxSettings.settings.darkMode?mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);
-var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";l.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(l);"1"==urlParams.sketch&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=d||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])e(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&
-(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));var m=this;mxWindow.prototype.fit=function(){if(Editor.inlineFullscreen||null==m.embedViewport)mxUtils.fit(this.div);else{var b=parseInt(this.div.offsetLeft),c=parseInt(this.div.offsetWidth);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,
-m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=d)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,
-p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();
-if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";
-p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?
-"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText="position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var z=document.createElement("div");z.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";m.titlebar.appendChild(z);l.appendChild(m.titlebar)}var A=
-m.menus.get("viewZoom"),U="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,P="1"==urlParams.sketch?document.createElement("div"):null,S="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null,z=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()});m.addListener("darkModeChanged",z);m.addListener("sketchModeChanged",z);var ka=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)Y.style.left="10px",Y.style.top="10px",S.style.left="10px",S.style.top="60px",P.style.top="10px",P.style.right="12px",P.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),
-m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=
-c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}Y.style.left=m.diagramContainer.offsetLeft+"px";Y.style.top=m.diagramContainer.offsetTop-Y.offsetHeight-4+"px";S.style.display="";S.style.left=m.diagramContainer.offsetLeft-S.offsetWidth-4+"px";S.style.top=m.diagramContainer.offsetTop+
-"px";P.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-P.offsetWidth+"px";P.style.top=Y.style.top;P.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/
-2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=m.bottomResizer.style.visibility;p.style.display="none";Y.style.visibility="";P.style.visibility=""}),aa=mxUtils.bind(this,function(){ja.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=
-Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";ka()}),z=mxUtils.bind(this,function(){aa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",aa);m.addListener("editInlineStart",z);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",z);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width=
-"10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";Y.style.visibility="hidden";P.style.visibility="hidden";S.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});
-if(null!=m.hoverIcons){var ba=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ba.apply(this,arguments)}}if(null!=n.freehand){var na=n.freehand.createStyle;n.freehand.createStyle=function(b){return na.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){S.className="geToolbarContainer";P.className="geToolbarContainer";Y.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=S;var pa=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display=
-"inline-block"});mxEvent.addListener(p,"mouseleave",function(){pa||(m.statusContainer.style.display="none")});var fa=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&
-"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();fa(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+
-'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",pa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",pa=!1)}else m.statusContainer.style.display="inline-block",fa(null),pa=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));R=c("diagram",null,Editor.menuImage);R.style.boxShadow="none";R.style.padding="6px";R.style.margin=
-"0px";Y.appendChild(R);mxEvent.disableContextMenu(R);mxEvent.addGestureListeners(R,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);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(d-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 ca=document.createElement("a");ca.style.padding="0px";ca.style.boxShadow="none";ca.className="geMenuItem";ca.style.display="inline-block";ca.style.width="40px";ca.style.height="12px";ca.style.marginBottom="-2px";ca.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";ca.style.backgroundPosition=
-"top center";ca.style.backgroundRepeat="no-repeat";ca.setAttribute("title","Minimize");var Q=!1,V=mxUtils.bind(this,function(){S.innerHTML="";if(!Q){var b=function(b,c,e){b=f("",b.funct,null,c,b,e);b.style.width="40px";b.style.opacity="0.7";return d(b,null,"pointer")},d=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";S.appendChild(b);mxUtils.br(S);return b};d(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",
+null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,["synchronize"],d)),b.addSeparator(d),c.menus.addSubmenu("save",b,d));c.menus.addSubmenu("exportAs",b,d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?c.menus.addMenuItems(b,["import"],d):"1"!=urlParams.noFileMenu&&c.menus.addSubmenu("importFrom",b,d);b.addSeparator(d);"1"!=urlParams.sketch?c.menus.addMenuItems(b,["outline"],d):e.constructor==DriveFile&&c.menus.addMenuItems(b,["share"],d);c.commentsSupported()&&c.menus.addMenuItems(b,["comments"],
+d);c.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),d);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&navigator.standalone||c.menus.addMenuItems(b,["print"],d);null!=e&&null!=c.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():c.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(d);c.menus.addSubmenu("help",b,d);"1"==urlParams.embed||c.mode==App.MODE_ATLAS?"1"==urlParams.noExitBtn&&c.mode!=
+App.MODE_ATLAS||c.menus.addMenuItems(b,["-","exit"],d):"1"!=urlParams.noFileMenu&&c.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,d){var e=c.getCurrentFile();null!=e&&e.constructor==DriveFile?c.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],d):(c.menus.addMenuItems(b,["save","saveAs","-","rename"],d),c.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],d):c.menus.addMenuItems(b,
+["makeCopy"],d));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||c.menus.addMenuItems(b,["-","synchronize"],d);c.menus.addMenuItems(b,["-","autosave"],d);null!=e&&e.isRevisionHistorySupported()&&c.menus.addMenuItems(b,["-","revisionHistory"],d)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,d){k.funct(b,d);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||c.menus.addMenuItems(b,["publishLink"],d);c.mode!=
+App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(d),c.menus.addSubmenu("embed",b,d))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,d){c.menus.addInsertTableCellItem(b,d)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,e){m.funct(b,e);this.addMenuItems(b,["editDiagram"],e);"1"==urlParams.sketch&&(b.addSeparator(e),b.addItem(mxResources.get("csv")+"...",null,function(){c.showImportCsvDialog()},e,null,mxUtils.bind(d,
+d.isEnabled)),c.addInsertMenuItems(b,e,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,d){"1"!=urlParams.embed&&"1"!=urlParams.extAuth&&c.mode!=App.MODE_ATLAS&&c.menus.addSubmenu("theme",b,d);null!=l&&c.menus.addSubmenu("language",b,d);c.menus.addSubmenu("units",b,d);c.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),d);"1"!=urlParams.embedInline&&("1"!=urlParams.embed&&(isLocalStorage||
+mxClient.IS_CHROMEAPP)&&c.mode!=App.MODE_ATLAS&&c.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],d),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],d));b.addSeparator(d);c.mode!=App.MODE_ATLAS&&c.menus.addMenuItem(b,"configuration",d);!c.isOfflineApp()&&isLocalStorage&&c.mode!=App.MODE_ATLAS&&c.menus.addMenuItem(b,"plugins",d);c.mode!=App.MODE_ATLAS&&this.addMenuItems(b,["-","fullscreen"],d);(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&
+this.addMenuItems(b,["toggleDarkMode"],d);"1"==urlParams.sketch&&this.addMenuItems(b,["-","toggleSketchMode"],d);b.addSeparator(d)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,d){c.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),d)})));mxUtils.bind(this,function(){var b=this.get("insert"),d=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(c.menus.addMenuItems(b,["insertFreehand"],e),c.insertTemplateEnabled&&!c.isOffline()&&
+c.menus.addMenuItems(b,["insertTemplate"],e)):(d.apply(this,arguments),c.menus.addSubmenu("table",b,e),b.addSeparator(e));c.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,d,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(c,e,f);c.showDialog(b.container,620,420,!0,!1);b.init()}),d)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,c){for(var d=
+0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(e,f){0<c.getSelectionCount()?
+(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):null!=d.parentNode&&d.parentNode.removeChild(d)}))};var z=!1;EditorUi.prototype.initFormatWindow=function(){if(!z){z=!0;this.formatWindow.window.setClosable(!1);var b=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){b.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width=
+"240px",this.table.style.width="240px",this.div.style.left=Math.max(0,parseInt(this.div.style.left)-150)+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(b){mxEvent.getSource(b)==this.formatWindow.window.title&&this.formatWindow.window.toggleMinimized()}))}};var B=EditorUi.prototype.init;EditorUi.prototype.init=function(){function c(b,c,d){var e=m.menus.get(b),f=t.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),
+q);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));m.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize=
+"24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition="right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign=
+"top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle="none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin="0px");null!=m.statusContainer?p.insertBefore(k,m.statusContainer):p.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,
+function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");
+d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&
+"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&(Y.style.left=58>S.offsetTop-S.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var e=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=e}q=p.firstChild;d=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>d||"1"==urlParams.sketch,k=null;b||(k=c("diagram"));
+e=b?c("diagram",null,Editor.drawLogoImage):null;null!=e&&(k=e);g([k,f(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),b?Editor.shapesImage:null),f(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),b?Editor.formatImage:null)],b?60:null);e=c("insert",!0,b?U:null);g([e,f(mxResources.get("delete"),m.actions.get("delete").funct,
+null,mxResources.get("delete"),m.actions.get("delete"),b?Editor.trashImage:null)],b?60:null);411<=d&&(g([ea,ga],60),520<=d&&g([ma,640<=d?f("",ia.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",ia,Editor.zoomInImage):null,640<=d?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,Editor.zoomOutImage):null],60))}null!=k&&(mxEvent.disableContextMenu(k),mxEvent.addGestureListeners(k,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||
+mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&m.appIconClicked(b)}),null,null));e=m.menus.get("language");null!=e&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=d&&"1"!=urlParams.sketch?(null==la&&(e=t.addMenu("",e.funct),e.setAttribute("title",mxResources.get("language")),e.className="geToolbarButton",e.style.backgroundImage="url("+Editor.globeImage+")",e.style.backgroundPosition="center center",e.style.backgroundRepeat="no-repeat",e.style.backgroundSize="24px 24px",e.style.position=
+"absolute",e.style.height="24px",e.style.width="24px",e.style.zIndex="1",e.style.right="8px",e.style.cursor="pointer",e.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(e),la=e),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=la&&(la.parentNode.removeChild(la),la=null))}B.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:null!=mxSettings.settings.darkMode?
+mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";l.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(l);"1"==urlParams.sketch&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=d||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])e(this,
+!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));var m=this;mxWindow.prototype.fit=function(){if(Editor.inlineFullscreen||null==m.embedViewport)mxUtils.fit(this.div);else{var b=parseInt(this.div.offsetLeft),c=parseInt(this.div.offsetWidth);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-c))+"px";b=parseInt(this.div.offsetTop);
+c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=d)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=mxResources.get("untitledLibrary");var p=
+document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=
+m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText=
+"position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText=
+"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText="position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var z=document.createElement("div");z.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";
+m.titlebar.appendChild(z);l.appendChild(m.titlebar)}var A=m.menus.get("viewZoom"),U="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,O="1"==urlParams.sketch?document.createElement("div"):null,S="1"==urlParams.sketch?document.createElement("div"):null,Y="1"==urlParams.sketch?document.createElement("div"):null,z=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()});m.addListener("darkModeChanged",z);m.addListener("sketchModeChanged",z);var ka=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)Y.style.left="10px",Y.style.top="10px",S.style.left="10px",S.style.top="60px",O.style.top="10px",O.style.right="12px",O.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+
+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=
+b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}Y.style.left=m.diagramContainer.offsetLeft+"px";Y.style.top=m.diagramContainer.offsetTop-Y.offsetHeight-4+"px";S.style.display="";S.style.left=m.diagramContainer.offsetLeft-
+S.offsetWidth-4+"px";S.style.top=m.diagramContainer.offsetTop+"px";O.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-O.offsetWidth+"px";O.style.top=Y.style.top;O.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+
+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=m.bottomResizer.style.visibility;p.style.display="none";Y.style.visibility="";O.style.visibility=""}),aa=mxUtils.bind(this,function(){ja.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:
+Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";ka()}),z=mxUtils.bind(this,function(){aa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",aa);m.addListener("editInlineStart",z);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",z);m.addListener("editInlineStop",
+mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";Y.style.visibility="hidden";O.style.visibility="hidden";S.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==
+b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ba=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ba.apply(this,arguments)}}if(null!=n.freehand){var na=n.freehand.createStyle;n.freehand.createStyle=function(b){return na.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){S.className="geToolbarContainer";O.className="geToolbarContainer";Y.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=S;var pa=
+!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){pa||(m.statusContainer.style.display="none")});var fa=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());
+if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();fa(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML=
+'<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",pa=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",pa=!1)}else m.statusContainer.style.display="inline-block",fa(null),pa=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));R=c("diagram",null,Editor.menuImage);R.style.boxShadow=
+"none";R.style.padding="6px";R.style.margin="0px";Y.appendChild(R);mxEvent.disableContextMenu(R);mxEvent.addGestureListeners(R,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);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(d-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 ca=document.createElement("a");ca.style.padding="0px";ca.style.boxShadow="none";ca.className="geMenuItem";ca.style.display="inline-block";ca.style.width="40px";ca.style.height="12px";ca.style.marginBottom="-2px";ca.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+
+")";ca.style.backgroundPosition="top center";ca.style.backgroundRepeat="no-repeat";ca.setAttribute("title","Minimize");var Q=!1,V=mxUtils.bind(this,function(){S.innerHTML="";if(!Q){var b=function(b,c,e){b=f("",b.funct,null,c,b,e);b.style.width="40px";b.style.opacity="0.7";return d(b,null,"pointer")},d=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";S.appendChild(b);mxUtils.br(S);return b};d(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",
60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");d(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;shadow=1;size=20;pointerEvents=1;",140,160,"",mxResources.get("note"),!0,!1,null,!0),mxResources.get("note"));d(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",
160,80,"",mxResources.get("rectangle"),!0,!1,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");d(m.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!1,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;");b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);
b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;d(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!0,null,!0,!1),mxResources.get("line"));b=b.clone();b.style="edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=n.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=d(m.sidebar.createEdgeTemplateFromCells([b],
@@ -12205,30 +12209,30 @@ b.geometry.width,40,mxResources.get("arrow"),!0,null,!0,!1),mxResources.get("arr
R.style.margin="0px";R.style.width="37px";d(R,null,"pointer");b(m.actions.get("insertTemplate"),mxResources.get("template"),Editor.addImage)}"1"!=urlParams.embedInline&&S.appendChild(ca)});mxEvent.addListener(ca,"click",mxUtils.bind(this,function(){Q?(mxUtils.setPrefixedStyle(S.style,"transform","translate(0, -50%)"),S.style.padding="8px 6px 4px",S.style.top="50%",S.style.bottom="",S.style.height="",ca.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",ca.style.width="40px",ca.style.height=
"12px",ca.setAttribute("title","Minimize"),Q=!1,V()):(S.innerHTML="",S.appendChild(ca),mxUtils.setPrefixedStyle(S.style,"transform","translate(0, 0)"),S.style.top="",S.style.bottom="12px",S.style.padding="0px",S.style.height="24px",ca.style.height="24px",ca.style.backgroundImage="url("+Editor.plusImage+")",ca.setAttribute("title",mxResources.get("insert")),ca.style.width="24px",Q=!0)}));V();m.addListener("darkModeChanged",V);m.addListener("sketchModeChanged",V)}else m.editor.addListener("statusChanged",
mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=A){var z=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)||mxEvent.isShiftDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},ia=m.actions.get("zoomIn"),W=m.actions.get("zoomOut"),Z=m.actions.get("resetView"),ha=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var ra=m.actions.get("undo"),X=m.actions.get("redo"),ea=f("",ra.funct,null,mxResources.get("undo")+" ("+ra.shortcut+
-")",ra,Editor.undoImage),ga=f("",X.funct,null,mxResources.get("redo")+" ("+X.shortcut+")",X,Editor.redoImage),ja=f("",ha.funct,null,mxResources.get("fullscreen"),ha,Editor.fullscreenImage);if(null!=P){A=function(){da.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};ja.parentNode.removeChild(ja);var oa=m.actions.get("delete"),ua=f("",oa.funct,null,mxResources.get("delete"),oa,Editor.trashImage);ua.style.opacity="0.1";Y.appendChild(ua);
+")",ra,Editor.undoImage),ga=f("",X.funct,null,mxResources.get("redo")+" ("+X.shortcut+")",X,Editor.redoImage),ja=f("",ha.funct,null,mxResources.get("fullscreen"),ha,Editor.fullscreenImage);if(null!=O){A=function(){da.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};ja.parentNode.removeChild(ja);var oa=m.actions.get("delete"),ua=f("",oa.funct,null,mxResources.get("delete"),oa,Editor.trashImage);ua.style.opacity="0.1";Y.appendChild(ua);
oa.addListener("stateChanged",function(){ua.style.opacity=oa.enabled?"":"0.1"});Z=function(){ea.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";ga.style.display=ea.style.display;ea.style.opacity=ra.enabled?"":"0.1";ga.style.opacity=X.enabled?"":"0.1"};Y.appendChild(ea);Y.appendChild(ga);ra.addListener("stateChanged",Z);X.addListener("stateChanged",Z);Z();null!=urlParams.layers&&(Z=m.actions.get("layers"),Z=f("",Z.funct,null,mxResources.get("layers"),Z,Editor.layersImage),
-Z.style.opacity="0.4",P.appendChild(Z));null!=urlParams.tags&&(Z=m.actions.get("tags"),Z=f("",Z.funct,null,mxResources.get("tags"),Z,Editor.tagsImage),Z.style.opacity="0.4",P.appendChild(Z));Z=m.actions.get("outline");Z=f("",Z.funct,null,mxResources.get("outline"),Z,Editor.outlineImage);P.appendChild(Z);Z=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);P.appendChild(Z);var R=document.createElement("div");R.innerHTML="100%";R.setAttribute("title",
-mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");R.style.display="inline-block";R.style.cursor="pointer";R.style.textAlign="center";R.style.whiteSpace="nowrap";R.style.paddingRight="10px";R.style.textDecoration="none";R.style.verticalAlign="top";R.style.padding="6px 0";R.style.fontSize="14px";R.style.width="40px";R.style.opacity="0.4";P.appendChild(R);mxEvent.addListener(R,"click",z);z=f("",ia.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ia,
-Editor.zoomInImage);P.appendChild(z);"1"==urlParams.embedInline&&(P.appendChild(ja),z=m.actions.get("exit"),P.appendChild(f("",z.funct,null,mxResources.get("exit"),z,Editor.closeImage)));var da=this.createPageMenuTab(!1);da.style.display="none";da.style.position="";da.style.marginLeft="";da.style.top="";da.style.left="";da.style.height="100%";da.style.lineHeight="";da.style.borderStyle="none";da.style.padding="3px 0";da.style.margin="0px";da.style.background="";da.style.border="";da.style.boxShadow=
-"none";da.style.verticalAlign="top";da.firstChild.style.height="100%";da.firstChild.style.opacity="0.6";da.firstChild.style.margin="0px";P.appendChild(da);m.addListener("fileDescriptorChanged",A);m.addListener("pagesVisibleChanged",A);A();m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:14px;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;";
-Y.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;";P.style.cssText="position:absolute;right:14px;bottom:14px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";x.appendChild(Y);x.appendChild(P);S.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;";
+Z.style.opacity="0.4",O.appendChild(Z));null!=urlParams.tags&&(Z=m.actions.get("tags"),Z=f("",Z.funct,null,mxResources.get("tags"),Z,Editor.tagsImage),Z.style.opacity="0.4",O.appendChild(Z));Z=m.actions.get("outline");Z=f("",Z.funct,null,mxResources.get("outline"),Z,Editor.outlineImage);O.appendChild(Z);Z=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);O.appendChild(Z);var R=document.createElement("div");R.innerHTML="100%";R.setAttribute("title",
+mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");R.style.display="inline-block";R.style.cursor="pointer";R.style.textAlign="center";R.style.whiteSpace="nowrap";R.style.paddingRight="10px";R.style.textDecoration="none";R.style.verticalAlign="top";R.style.padding="6px 0";R.style.fontSize="14px";R.style.width="40px";R.style.opacity="0.4";O.appendChild(R);mxEvent.addListener(R,"click",z);z=f("",ia.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",ia,
+Editor.zoomInImage);O.appendChild(z);"1"==urlParams.embedInline&&(O.appendChild(ja),z=m.actions.get("exit"),O.appendChild(f("",z.funct,null,mxResources.get("exit"),z,Editor.closeImage)));var da=this.createPageMenuTab(!1);da.style.display="none";da.style.position="";da.style.marginLeft="";da.style.top="";da.style.left="";da.style.height="100%";da.style.lineHeight="";da.style.borderStyle="none";da.style.padding="3px 0";da.style.margin="0px";da.style.background="";da.style.border="";da.style.boxShadow=
+"none";da.style.verticalAlign="top";da.firstChild.style.height="100%";da.firstChild.style.opacity="0.6";da.firstChild.style.margin="0px";O.appendChild(da);m.addListener("fileDescriptorChanged",A);m.addListener("pagesVisibleChanged",A);A();m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:14px;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;";
+Y.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;";O.style.cssText="position:absolute;right:14px;bottom:14px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";x.appendChild(Y);x.appendChild(O);S.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;";
x.appendChild(S);window.setTimeout(function(){mxUtils.setPrefixedStyle(S.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ma=f("",z,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",Z,Editor.zoomFitImage);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";R=t.addMenu("100%",A.funct);R.setAttribute("title",mxResources.get("zoom")+
" (Alt+Mousewheel)");R.style.whiteSpace="nowrap";R.style.paddingRight="10px";R.style.textDecoration="none";R.style.textDecoration="none";R.style.overflow="hidden";R.style.visibility="hidden";R.style.textAlign="center";R.style.cursor="pointer";R.style.height=parseInt(m.tabContainerHeight)-1+"px";R.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";R.style.position="absolute";R.style.display="block";R.style.fontSize="12px";R.style.width="59px";R.style.right="0px";R.style.bottom="0px";R.style.backgroundImage=
"url("+mxWindow.prototype.minimizeImage+")";R.style.backgroundPosition="right 6px center";R.style.backgroundRepeat="no-repeat";x.appendChild(R)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=Math.round(100*m.editor.graph.view.scale)+"%"});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);m.editor.addListener("resetGraphView",c);m.editor.addListener("pageSelected",c)})(R);var sa=m.setGraphEnabled;m.setGraphEnabled=function(){sa.apply(this,arguments);null!=this.tabContainer&&(R.style.visibility=
-this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==P?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==P&&x.appendChild(m.tabContainer);var la=null;k();mxEvent.addListener(window,"resize",function(){k();null!=m.sidebarWindow&&m.sidebarWindow.window.fit();null!=m.formatWindow&&m.formatWindow.window.fit();null!=m.actions.outlineWindow&&m.actions.outlineWindow.window.fit();
+this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==O?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==O&&x.appendChild(m.tabContainer);var la=null;k();mxEvent.addListener(window,"resize",function(){k();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()});if("1"==urlParams.embedInline){document.body.style.cursor="text";S.style.transform="";mxEvent.addGestureListeners(m.diagramContainer.parentNode,function(b){mxEvent.getSource(b)==m.diagramContainer.parentNode&&(m.embedExitPoint=new mxPoint(mxEvent.getClientX(b),
mxEvent.getClientY(b)),m.sendEmbeddedSvgExport())});l=document.createElement("div");l.style.position="absolute";l.style.width="10px";l.style.height="10px";l.style.borderRadius="5px";l.style.border="1px solid gray";l.style.background="#ffffff";l.style.cursor="row-resize";m.diagramContainer.parentNode.appendChild(l);m.bottomResizer=l;var qa=null,ta=null,va=null,xa=null;mxEvent.addGestureListeners(l,function(b){xa=parseInt(m.diagramContainer.style.height);ta=mxEvent.getClientY(b);n.popupMenuHandler.hideMenu();
mxEvent.consume(b)});l=l.cloneNode(!1);l.style.cursor="col-resize";m.diagramContainer.parentNode.appendChild(l);m.rightResizer=l;mxEvent.addGestureListeners(l,function(b){va=parseInt(m.diagramContainer.style.width);qa=mxEvent.getClientX(b);n.popupMenuHandler.hideMenu();mxEvent.consume(b)});mxEvent.addGestureListeners(document.body,null,function(b){var c=!1;null!=qa&&(m.diagramContainer.style.width=Math.max(20,va+mxEvent.getClientX(b)-qa)+"px",c=!0);null!=ta&&(m.diagramContainer.style.height=Math.max(20,
-xa+mxEvent.getClientY(b)-ta)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),ka(),m.refresh())},function(b){null==qa&&null==ta||mxEvent.consume(b);ta=qa=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";Y.style.visibility="hidden";P.style.visibility=
+xa+mxEvent.getClientY(b)-ta)+"px",c=!0);c&&((window.opener||window.parent).postMessage(JSON.stringify({event:"resize",fullscreen:Editor.inlineFullscreen,rect:m.diagramContainer.getBoundingClientRect()}),"*"),ka(),m.refresh())},function(b){null==qa&&null==ta||mxEvent.consume(b);ta=qa=null});this.diagramContainer.style.borderRadius="4px";document.body.style.backgroundColor="transparent";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";Y.style.visibility="hidden";O.style.visibility=
"hidden";S.style.display="none"}"1"==urlParams.prefetchFonts&&m.editor.loadFonts()}}};(function(){var b=!1;"min"!=uiTheme||b||mxClient.IS_CHROMEAPP||(EditorUi.initMinimalTheme(),b=!0);var e=EditorUi.initTheme;EditorUi.initTheme=function(){e.apply(this,arguments);"min"!=uiTheme||b||(this.initMinimalTheme(),b=!0)}})();(function(){var b=mxGuide.prototype.move;mxGuide.prototype.move=function(c,d,e,n){var f=d.y,g=d.x,k=!1,p=!1;if(null!=this.states&&null!=c&&null!=d){var q=this,t=new mxCellState,u=this.graph.getView().scale,v=Math.max(2,this.getGuideTolerance()/2);t.x=c.x+g;t.y=c.y+f;t.width=c.width;t.height=c.height;for(var x=[],A=[],z=0;z<this.states.length;z++){var B=this.states[z];B instanceof mxCellState&&(n||!this.graph.isCellSelected(B.cell))&&((t.x>=B.x&&t.x<=B.x+B.width||B.x>=t.x&&B.x<=t.x+t.width)&&(t.y>
-B.y+B.height+4||t.y+t.height+4<B.y)?x.push(B):(t.y>=B.y&&t.y<=B.y+B.height||B.y>=t.y&&B.y<=t.y+t.height)&&(t.x>B.x+B.width+4||t.x+t.width+4<B.x)&&A.push(B))}var y=0,C=0,G=B=0,F=0,D=0,E=0,H=0,I=5*u;if(1<x.length){x.push(t);x.sort(function(b,c){return b.y-c.y});var L=!1,z=t==x[0],u=t==x[x.length-1];if(!z&&!u)for(z=1;z<x.length-1;z++)if(t==x[z]){u=x[z-1];z=x[z+1];B=C=G=(z.y-u.y-u.height-t.height)/2;break}for(z=0;z<x.length-1;z++){var u=x[z],M=x[z+1],N=t==u||t==M,M=M.y-u.y-u.height,L=L|t==u;if(0==C&&
-0==y)C=M,y=1;else if(Math.abs(C-M)<=(N||1==z&&L?v:0))y+=1;else if(1<y&&L){x=x.slice(0,z+1);break}else if(3<=x.length-z&&!L)y=0,B=C=0!=G?G:0,x.splice(0,0==z?1:z),z=-1;else break;0!=B||N||(C=B=M)}3==x.length&&x[1]==t&&(B=0)}if(1<A.length){A.push(t);A.sort(function(b,c){return b.x-c.x});L=!1;z=t==A[0];u=t==A[A.length-1];if(!z&&!u)for(z=1;z<A.length-1;z++)if(t==A[z]){u=A[z-1];z=A[z+1];E=D=H=(z.x-u.x-u.width-t.width)/2;break}for(z=0;z<A.length-1;z++){u=A[z];M=A[z+1];N=t==u||t==M;M=M.x-u.x-u.width;L|=t==
-u;if(0==D&&0==F)D=M,F=1;else if(Math.abs(D-M)<=(N||1==z&&L?v:0))F+=1;else if(1<F&&L){A=A.slice(0,z+1);break}else if(3<=A.length-z&&!L)F=0,E=D=0!=H?H:0,A.splice(0,0==z?1:z),z=-1;else break;0!=E||N||(D=E=M)}3==A.length&&A[1]==t&&(E=0)}v=function(b,c,d,e){var f=[],g;e?(e=I,g=0):(e=0,g=I);f.push(new mxPoint(b.x-e,b.y-g));f.push(new mxPoint(b.x+e,b.y+g));f.push(b);f.push(c);f.push(new mxPoint(c.x-e,c.y-g));f.push(new mxPoint(c.x+e,c.y+g));if(null!=d)return d.points=f,d;b=new mxPolyline(f,mxConstants.GUIDE_COLOR,
-mxConstants.GUIDE_STROKEWIDTH);b.dialect=mxConstants.DIALECT_SVG;b.pointerEvents=!1;b.init(q.graph.getView().getOverlayPane());return b};D=function(b,c){if(b&&null!=q.guidesArrHor)for(var d=0;d<q.guidesArrHor.length;d++)q.guidesArrHor[d].node.style.visibility="hidden";if(c&&null!=q.guidesArrVer)for(d=0;d<q.guidesArrVer.length;d++)q.guidesArrVer[d].node.style.visibility="hidden"};if(1<F&&F==A.length-1){F=[];H=q.guidesArrHor;k=[];g=0;z=A[0]==t?1:0;L=A[z].y+A[z].height;if(0<E)for(z=0;z<A.length-1;z++)u=
-A[z],M=A[z+1],t==u?(g=M.x-u.width-E,k.push(new mxPoint(g+u.width+I,L)),k.push(new mxPoint(M.x-I,L))):t==M?(k.push(new mxPoint(u.x+u.width+I,L)),g=u.x+u.width+E,k.push(new mxPoint(g-I,L))):(k.push(new mxPoint(u.x+u.width+I,L)),k.push(new mxPoint(M.x-I,L)));else u=A[0],z=A[2],g=u.x+u.width+(z.x-u.x-u.width-t.width)/2,k.push(new mxPoint(u.x+u.width+I,L)),k.push(new mxPoint(g-I,L)),k.push(new mxPoint(g+t.width+I,L)),k.push(new mxPoint(z.x-I,L));for(z=0;z<k.length;z+=2)A=k[z],E=k[z+1],A=v(A,E,null!=H?
-H[z/2]:null),A.node.style.visibility="visible",A.redraw(),F.push(A);for(z=k.length/2;null!=H&&z<H.length;z++)H[z].destroy();q.guidesArrHor=F;g-=c.x;k=!0}else D(!0);if(1<y&&y==x.length-1){F=[];H=q.guidesArrVer;p=[];f=0;z=x[0]==t?1:0;y=x[z].x+x[z].width;if(0<B)for(z=0;z<x.length-1;z++)u=x[z],M=x[z+1],t==u?(f=M.y-u.height-B,p.push(new mxPoint(y,f+u.height+I)),p.push(new mxPoint(y,M.y-I))):t==M?(p.push(new mxPoint(y,u.y+u.height+I)),f=u.y+u.height+B,p.push(new mxPoint(y,f-I))):(p.push(new mxPoint(y,u.y+
-u.height+I)),p.push(new mxPoint(y,M.y-I)));else u=x[0],z=x[2],f=u.y+u.height+(z.y-u.y-u.height-t.height)/2,p.push(new mxPoint(y,u.y+u.height+I)),p.push(new mxPoint(y,f-I)),p.push(new mxPoint(y,f+t.height+I)),p.push(new mxPoint(y,z.y-I));for(z=0;z<p.length;z+=2)A=p[z],E=p[z+1],A=v(A,E,null!=H?H[z/2]:null,!0),A.node.style.visibility="visible",A.redraw(),F.push(A);for(z=p.length/2;null!=H&&z<H.length;z++)H[z].destroy();q.guidesArrVer=F;f-=c.y;p=!0}else D(!1,!0)}if(k||p)return t=new mxPoint(g,f),x=b.call(this,
-c,t,e,n),k&&!p?t.y=x.y:p&&!k&&(t.x=x.x),x.y!=t.y&&null!=this.guideY&&null!=this.guideY.node&&(this.guideY.node.style.visibility="hidden"),x.x!=t.x&&null!=this.guideX&&null!=this.guideX.node&&(this.guideX.node.style.visibility="hidden"),t;D(!0,!0);return b.apply(this,arguments)};var e=mxGuide.prototype.setVisible;mxGuide.prototype.setVisible=function(b){e.call(this,b);var c=this.guidesArrVer,d=this.guidesArrHor;if(null!=c)for(var n=0;n<c.length;n++)c[n].node.style.visibility=b?"visible":"hidden";if(null!=
+B.y+B.height+4||t.y+t.height+4<B.y)?x.push(B):(t.y>=B.y&&t.y<=B.y+B.height||B.y>=t.y&&B.y<=t.y+t.height)&&(t.x>B.x+B.width+4||t.x+t.width+4<B.x)&&A.push(B))}var y=0,C=0,D=B=0,G=0,E=0,F=0,H=0,I=5*u;if(1<x.length){x.push(t);x.sort(function(b,c){return b.y-c.y});var L=!1,z=t==x[0],u=t==x[x.length-1];if(!z&&!u)for(z=1;z<x.length-1;z++)if(t==x[z]){u=x[z-1];z=x[z+1];B=C=D=(z.y-u.y-u.height-t.height)/2;break}for(z=0;z<x.length-1;z++){var u=x[z],M=x[z+1],N=t==u||t==M,M=M.y-u.y-u.height,L=L|t==u;if(0==C&&
+0==y)C=M,y=1;else if(Math.abs(C-M)<=(N||1==z&&L?v:0))y+=1;else if(1<y&&L){x=x.slice(0,z+1);break}else if(3<=x.length-z&&!L)y=0,B=C=0!=D?D:0,x.splice(0,0==z?1:z),z=-1;else break;0!=B||N||(C=B=M)}3==x.length&&x[1]==t&&(B=0)}if(1<A.length){A.push(t);A.sort(function(b,c){return b.x-c.x});L=!1;z=t==A[0];u=t==A[A.length-1];if(!z&&!u)for(z=1;z<A.length-1;z++)if(t==A[z]){u=A[z-1];z=A[z+1];F=E=H=(z.x-u.x-u.width-t.width)/2;break}for(z=0;z<A.length-1;z++){u=A[z];M=A[z+1];N=t==u||t==M;M=M.x-u.x-u.width;L|=t==
+u;if(0==E&&0==G)E=M,G=1;else if(Math.abs(E-M)<=(N||1==z&&L?v:0))G+=1;else if(1<G&&L){A=A.slice(0,z+1);break}else if(3<=A.length-z&&!L)G=0,F=E=0!=H?H:0,A.splice(0,0==z?1:z),z=-1;else break;0!=F||N||(E=F=M)}3==A.length&&A[1]==t&&(F=0)}v=function(b,c,d,e){var f=[],g;e?(e=I,g=0):(e=0,g=I);f.push(new mxPoint(b.x-e,b.y-g));f.push(new mxPoint(b.x+e,b.y+g));f.push(b);f.push(c);f.push(new mxPoint(c.x-e,c.y-g));f.push(new mxPoint(c.x+e,c.y+g));if(null!=d)return d.points=f,d;b=new mxPolyline(f,mxConstants.GUIDE_COLOR,
+mxConstants.GUIDE_STROKEWIDTH);b.dialect=mxConstants.DIALECT_SVG;b.pointerEvents=!1;b.init(q.graph.getView().getOverlayPane());return b};E=function(b,c){if(b&&null!=q.guidesArrHor)for(var d=0;d<q.guidesArrHor.length;d++)q.guidesArrHor[d].node.style.visibility="hidden";if(c&&null!=q.guidesArrVer)for(d=0;d<q.guidesArrVer.length;d++)q.guidesArrVer[d].node.style.visibility="hidden"};if(1<G&&G==A.length-1){G=[];H=q.guidesArrHor;k=[];g=0;z=A[0]==t?1:0;L=A[z].y+A[z].height;if(0<F)for(z=0;z<A.length-1;z++)u=
+A[z],M=A[z+1],t==u?(g=M.x-u.width-F,k.push(new mxPoint(g+u.width+I,L)),k.push(new mxPoint(M.x-I,L))):t==M?(k.push(new mxPoint(u.x+u.width+I,L)),g=u.x+u.width+F,k.push(new mxPoint(g-I,L))):(k.push(new mxPoint(u.x+u.width+I,L)),k.push(new mxPoint(M.x-I,L)));else u=A[0],z=A[2],g=u.x+u.width+(z.x-u.x-u.width-t.width)/2,k.push(new mxPoint(u.x+u.width+I,L)),k.push(new mxPoint(g-I,L)),k.push(new mxPoint(g+t.width+I,L)),k.push(new mxPoint(z.x-I,L));for(z=0;z<k.length;z+=2)A=k[z],F=k[z+1],A=v(A,F,null!=H?
+H[z/2]:null),A.node.style.visibility="visible",A.redraw(),G.push(A);for(z=k.length/2;null!=H&&z<H.length;z++)H[z].destroy();q.guidesArrHor=G;g-=c.x;k=!0}else E(!0);if(1<y&&y==x.length-1){G=[];H=q.guidesArrVer;p=[];f=0;z=x[0]==t?1:0;y=x[z].x+x[z].width;if(0<B)for(z=0;z<x.length-1;z++)u=x[z],M=x[z+1],t==u?(f=M.y-u.height-B,p.push(new mxPoint(y,f+u.height+I)),p.push(new mxPoint(y,M.y-I))):t==M?(p.push(new mxPoint(y,u.y+u.height+I)),f=u.y+u.height+B,p.push(new mxPoint(y,f-I))):(p.push(new mxPoint(y,u.y+
+u.height+I)),p.push(new mxPoint(y,M.y-I)));else u=x[0],z=x[2],f=u.y+u.height+(z.y-u.y-u.height-t.height)/2,p.push(new mxPoint(y,u.y+u.height+I)),p.push(new mxPoint(y,f-I)),p.push(new mxPoint(y,f+t.height+I)),p.push(new mxPoint(y,z.y-I));for(z=0;z<p.length;z+=2)A=p[z],F=p[z+1],A=v(A,F,null!=H?H[z/2]:null,!0),A.node.style.visibility="visible",A.redraw(),G.push(A);for(z=p.length/2;null!=H&&z<H.length;z++)H[z].destroy();q.guidesArrVer=G;f-=c.y;p=!0}else E(!1,!0)}if(k||p)return t=new mxPoint(g,f),x=b.call(this,
+c,t,e,n),k&&!p?t.y=x.y:p&&!k&&(t.x=x.x),x.y!=t.y&&null!=this.guideY&&null!=this.guideY.node&&(this.guideY.node.style.visibility="hidden"),x.x!=t.x&&null!=this.guideX&&null!=this.guideX.node&&(this.guideX.node.style.visibility="hidden"),t;E(!0,!0);return b.apply(this,arguments)};var e=mxGuide.prototype.setVisible;mxGuide.prototype.setVisible=function(b){e.call(this,b);var c=this.guidesArrVer,d=this.guidesArrHor;if(null!=c)for(var n=0;n<c.length;n++)c[n].node.style.visibility=b?"visible":"hidden";if(null!=
d)for(n=0;n<d.length;n++)d[n].node.style.visibility=b?"visible":"hidden"};var d=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){d.call(this);var b=this.guidesArrVer,e=this.guidesArrHor;if(null!=b){for(var k=0;k<b.length;k++)b[k].destroy();this.guidesArrVer=null}if(null!=e){for(k=0;k<e.length;k++)e[k].destroy();this.guidesArrHor=null}}})();function mxRuler(b,e,d,c){function g(){var c=b.diagramContainer;q.style.top=c.offsetTop-l+"px";q.style.left=c.offsetLeft-l+"px";q.style.width=(d?0:c.offsetWidth)+l+"px";q.style.height=(d?c.offsetHeight:0)+l+"px"}function k(b,c,d){if(null!=n)return b;var e;return function(){var f=this,g=arguments,k=d&&!e;clearTimeout(e);e=setTimeout(function(){e=null;d||b.apply(f,g)},c);k&&b.apply(f,g)}}var n=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,
f=window.cancelAnimationFrame||window.mozCancelAnimationFrame,l=this.RULER_THICKNESS,m=this;this.unit=e;var p=Editor.isDarkMode()?{bkgClr:"#202020",outBkgClr:Editor.darkColor,cornerClr:Editor.darkColor,strokeClr:"#505759",fontClr:"#BBBBBB",guideClr:"#0088cf"}:{bkgClr:"#ffffff",outBkgClr:"#e8e9ed",cornerClr:"#fbfbfb",strokeClr:"#dadce0",fontClr:"#BBBBBB",guideClr:"#0000BB"},q=document.createElement("div");q.style.position="absolute";this.updateStyle=mxUtils.bind(this,function(){p=Editor.isDarkMode()?
{bkgClr:"#202020",outBkgClr:Editor.darkColor,cornerClr:Editor.darkColor,strokeClr:"#505759",fontClr:"#BBBBBB",guideClr:"#0088cf"}:{bkgClr:"#ffffff",outBkgClr:"#e8e9ed",cornerClr:"#fbfbfb",strokeClr:"#dadce0",fontClr:"#BBBBBB",guideClr:"#0000BB"};q.style.background=p.bkgClr;q.style[d?"borderRight":"borderBottom"]="0.5px solid "+p.strokeClr;q.style.borderLeft="0.5px solid "+p.strokeClr});this.updateStyle();document.body.appendChild(q);mxEvent.disableContextMenu(q);this.editorUiRefresh=b.refresh;b.refresh=
@@ -12238,8 +12242,8 @@ g.x*v.pageFormat.width);var k,n,q;switch(m.unit){case mxConstants.POINTS:k=q=10;
2:1));k=null;c=f?Math.min(e+(d?c.height:c.width),d?t.height:t.width):d?t.height:t.width;if(f)if(u.fillStyle=p.outBkgClr,d){var A=e-l;0<A&&u.fillRect(0,l,l,A);c<t.height&&u.fillRect(0,c,l,t.height)}else A=e-l,0<A&&u.fillRect(l,0,A,l),c<t.width&&u.fillRect(c,0,t.width,l);u.fillStyle=p.fontClr;for(f=f?e:e%(z*b);f<=c;f+=z*b)if(A=Math.round((f-e)/b/z),!(f<l||A==k)){k=A;var B=null;0==A%q&&(B=m.formatText(g+A*z)+"");d?x(l-n[Math.abs(A)%q],f,l,f,B):x(f,l-n[Math.abs(A)%q],f,l,B)}u.lineWidth=1;x(d?0:l,d?l:
0,l,l);u.fillStyle=p.cornerClr;u.fillRect(0,0,l,l)},z=-1,B=function(){null!=n?(null!=f&&f(z),z=n(A)):A()};this.drawRuler=B;this.sizeListener=e=k(function(){var b=v.container;d?(b=b.offsetHeight+l,t.height!=b&&(t.height=b,q.style.height=b+"px",B())):(b=b.offsetWidth+l,t.width!=b&&(t.width=b,q.style.width=b+"px",B()))},10);this.pageListener=function(){B()};this.scrollListener=c=k(function(){var b=d?v.container.scrollTop:v.container.scrollLeft;m.lastScroll!=b&&(m.lastScroll=b,B())},10);this.unitListener=
function(b,c){m.setUnit(c.getProperty("unit"))};v.addListener(mxEvent.SIZE,e);v.container.addEventListener("scroll",c);v.view.addListener("unitChanged",this.unitListener);b.addListener("pageViewChanged",this.pageListener);b.addListener("pageScaleChanged",this.pageListener);b.addListener("pageFormatChanged",this.pageListener);this.setStyle=function(b){p=b;q.style.background=p.bkgClr;A()};this.origGuideMove=mxGuide.prototype.move;mxGuide.prototype.move=function(b,c,e,f){var g;if(d&&4<b.height||!d&&
-4<b.width){if(null!=m.guidePart)try{u.putImageData(m.guidePart.imgData1,m.guidePart.x1,m.guidePart.y1),u.putImageData(m.guidePart.imgData2,m.guidePart.x2,m.guidePart.y2),u.putImageData(m.guidePart.imgData3,m.guidePart.x3,m.guidePart.y3)}catch(K){}g=m.origGuideMove.apply(this,arguments);try{var k,n,q,t,v,y,z,A,B;u.lineWidth=.5;u.strokeStyle=p.guideClr;u.setLineDash([2]);d?(n=b.y+g.y+l-this.graph.container.scrollTop,k=0,v=n+b.height/2,t=l/2,A=n+b.height,z=0,q=u.getImageData(k,n-1,l,3),x(k,n,l,n),n--,
-y=u.getImageData(t,v-1,l,3),x(t,v,l,v),v--,B=u.getImageData(z,A-1,l,3),x(z,A,l,A),A--):(n=0,k=b.x+g.x+l-this.graph.container.scrollLeft,v=l/2,t=k+b.width/2,A=0,z=k+b.width,q=u.getImageData(k-1,n,3,l),x(k,n,k,l),k--,y=u.getImageData(t-1,v,3,l),x(t,v,t,l),t--,B=u.getImageData(z-1,A,3,l),x(z,A,z,l),z--);if(null==m.guidePart||m.guidePart.x1!=k||m.guidePart.y1!=n)m.guidePart={imgData1:q,x1:k,y1:n,imgData2:y,x2:t,y2:v,imgData3:B,x3:z,y3:A}}catch(K){}}else g=m.origGuideMove.apply(this,arguments);return g};
+4<b.width){if(null!=m.guidePart)try{u.putImageData(m.guidePart.imgData1,m.guidePart.x1,m.guidePart.y1),u.putImageData(m.guidePart.imgData2,m.guidePart.x2,m.guidePart.y2),u.putImageData(m.guidePart.imgData3,m.guidePart.x3,m.guidePart.y3)}catch(J){}g=m.origGuideMove.apply(this,arguments);try{var k,n,q,t,v,y,z,A,B;u.lineWidth=.5;u.strokeStyle=p.guideClr;u.setLineDash([2]);d?(n=b.y+g.y+l-this.graph.container.scrollTop,k=0,v=n+b.height/2,t=l/2,A=n+b.height,z=0,q=u.getImageData(k,n-1,l,3),x(k,n,l,n),n--,
+y=u.getImageData(t,v-1,l,3),x(t,v,l,v),v--,B=u.getImageData(z,A-1,l,3),x(z,A,l,A),A--):(n=0,k=b.x+g.x+l-this.graph.container.scrollLeft,v=l/2,t=k+b.width/2,A=0,z=k+b.width,q=u.getImageData(k-1,n,3,l),x(k,n,k,l),k--,y=u.getImageData(t-1,v,3,l),x(t,v,t,l),t--,B=u.getImageData(z-1,A,3,l),x(z,A,z,l),z--);if(null==m.guidePart||m.guidePart.x1!=k||m.guidePart.y1!=n)m.guidePart={imgData1:q,x1:k,y1:n,imgData2:y,x2:t,y2:v,imgData3:B,x3:z,y3:A}}catch(J){}}else g=m.origGuideMove.apply(this,arguments);return g};
this.origGuideDestroy=mxGuide.prototype.destroy;mxGuide.prototype.destroy=function(){var b=m.origGuideDestroy.apply(this,arguments);if(null!=m.guidePart)try{u.putImageData(m.guidePart.imgData1,m.guidePart.x1,m.guidePart.y1),u.putImageData(m.guidePart.imgData2,m.guidePart.x2,m.guidePart.y2),u.putImageData(m.guidePart.imgData3,m.guidePart.x3,m.guidePart.y3),m.guidePart=null}catch(C){}return b}}mxRuler.prototype.RULER_THICKNESS=14;mxRuler.prototype.unit=mxConstants.POINTS;
mxRuler.prototype.setUnit=function(b){this.unit=b;this.drawRuler()};mxRuler.prototype.formatText=function(b){switch(this.unit){case mxConstants.POINTS:return Math.round(b);case mxConstants.MILLIMETERS:return(b/mxConstants.PIXELS_PER_MM).toFixed(1);case mxConstants.METERS:return(b/(1E3*mxConstants.PIXELS_PER_MM)).toFixed(4);case mxConstants.INCHES:return(b/mxConstants.PIXELS_PER_INCH).toFixed(2)}};
mxRuler.prototype.destroy=function(){this.ui.refresh=this.editorUiRefresh;mxGuide.prototype.move=this.origGuideMove;mxGuide.prototype.destroy=this.origGuideDestroy;this.graph.removeListener(this.sizeListener);this.graph.container.removeEventListener("scroll",this.scrollListener);this.graph.view.removeListener("unitChanged",this.unitListener);this.ui.removeListener("pageViewChanged",this.pageListener);this.ui.removeListener("pageScaleChanged",this.pageListener);this.ui.removeListener("pageFormatChanged",
@@ -12254,6 +12258,6 @@ x=0,p=0;p<n.length;p++){var y=n[p];if(null==y){var y=!1,x=n[x],z=n[p-1];!l&&m&&(
Graph.compress(v)+")");v=b.view.scale;x=b.view.translate;d=new mxCell("",new mxGeometry(e/v-x.x,k/v-x.y,d/v,f/v),p);d.vertex=1;b.model.beginUpdate();try{d=b.addCell(d),b.fireEvent(new mxEventObject("cellsInserted","cells",[d])),b.fireEvent(new mxEventObject("freehandInserted","cell",d))}finally{b.model.endUpdate()}b.setSelectionCells([d])}}for(p=0;p<g.length;p++)g[p].parentNode.removeChild(g[p]);c=null;g=[];n=[]}A(!1)};b.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){var d=c.getProperty("eventName"),
e=c.getProperty("event");d==mxEvent.MOUSE_MOVE&&v&&(null!=e.sourceState&&e.sourceState.setCursor("crosshair"),e.consume())}));var B=new mxCell;B.edge=!0;b.addMouseListener({mouseDown:mxUtils.bind(this,function(d,g){if(b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var l=g.getEvent();if(v&&!mxEvent.isPopupTrigger(l)&&!mxEvent.isMultiTouchEvent(l)){var m=b.getCurrentCellStyle(B),p=parseFloat(b.currentVertexStyle[mxConstants.STYLE_STROKEWIDTH]||1),p=Math.max(1,p*b.view.scale),m=mxUtils.getValue(b.currentVertexStyle,
mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(m,mxConstants.STYLE_STROKECOLOR,"#000"));"default"==m&&(m=b.shapeForegroundColor);c=document.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("fill","none");c.setAttribute("stroke",m);c.setAttribute("stroke-width",p);"1"==b.currentVertexStyle[mxConstants.STYLE_DASHED]&&(m=b.currentVertexStyle[mxConstants.STYLE_DASH_PATTERN]||"3 3",m=m.split(" ").map(function(b){return parseFloat(b)*p}).join(" "),c.setAttribute("stroke-dasharray",m));
-u=[];l=y(l);C(l);k="M"+l.x+" "+l.y;n.push(l);f=[];c.setAttribute("d",k);e.appendChild(c);g.consume()}}}),mouseMove:mxUtils.bind(this,function(d,e){if(c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var g=e.getEvent(),g=y(g);C(g);var l=G(0);if(l){k+=" L"+l.x+" "+l.y;n.push(l);var m="";f=[];for(var p=2;p<u.length;p+=2)l=G(p),m+=" L"+l.x+" "+l.y,f.push(l);c.setAttribute("d",k+m)}q&&(l=b.view.translate,b.scrollRectToVisible((new mxRectangle(g.x-l.x,g.y-l.y)).grow(20)));e.consume()}}),mouseUp:mxUtils.bind(this,
-function(d,e){c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(z(e.getEvent()),e.consume())})});var y=function(c){return mxUtils.convertPoint(b.container,mxEvent.getClientX(c),mxEvent.getClientY(c))},C=function(b){for(u.push(b);u.length>d;)u.shift()},G=function(b){var c=u.length;if(1===c%2||c>=d){var e=0,f=0,g,k=0;for(g=b;g<c;g++)k++,b=u[g],e+=b.x,f+=b.y;return{x:e/k,y:f/k}}return null}}}mxFreehand.prototype.NO_SMOOTHING=1;mxFreehand.prototype.MILD_SMOOTHING=4;
+u=[];l=y(l);C(l);k="M"+l.x+" "+l.y;n.push(l);f=[];c.setAttribute("d",k);e.appendChild(c);g.consume()}}}),mouseMove:mxUtils.bind(this,function(d,e){if(c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())){var g=e.getEvent(),g=y(g);C(g);var l=D(0);if(l){k+=" L"+l.x+" "+l.y;n.push(l);var m="";f=[];for(var p=2;p<u.length;p+=2)l=D(p),m+=" L"+l.x+" "+l.y,f.push(l);c.setAttribute("d",k+m)}q&&(l=b.view.translate,b.scrollRectToVisible((new mxRectangle(g.x-l.x,g.y-l.y)).grow(20)));e.consume()}}),mouseUp:mxUtils.bind(this,
+function(d,e){c&&b.isEnabled()&&!b.isCellLocked(b.getDefaultParent())&&(z(e.getEvent()),e.consume())})});var y=function(c){return mxUtils.convertPoint(b.container,mxEvent.getClientX(c),mxEvent.getClientY(c))},C=function(b){for(u.push(b);u.length>d;)u.shift()},D=function(b){var c=u.length;if(1===c%2||c>=d){var e=0,f=0,g,k=0;for(g=b;g<c;g++)k++,b=u[g],e+=b.x,f+=b.y;return{x:e/k,y:f/k}}return null}}}mxFreehand.prototype.NO_SMOOTHING=1;mxFreehand.prototype.MILD_SMOOTHING=4;
mxFreehand.prototype.NORMAL_SMOOTHING=8;mxFreehand.prototype.VERY_SMOOTH_SMOOTHING=12;mxFreehand.prototype.SUPER_SMOOTH_SMOOTHING=16;mxFreehand.prototype.HYPER_SMOOTH_SMOOTHING=20;
diff --git a/src/main/webapp/js/diagramly/App.js b/src/main/webapp/js/diagramly/App.js
index 13e6bb53..a69c9f04 100644
--- a/src/main/webapp/js/diagramly/App.js
+++ b/src/main/webapp/js/diagramly/App.js
@@ -294,7 +294,7 @@ App.PUSHER_CLUSTER = 'eu';
/**
* Specifies the URL for the pusher API.
*/
-App.PUSHER_URL = 'https://js.pusher.com/4.3/pusher.min.js';
+App.PUSHER_URL = 'https://js.pusher.com/7.0.3/pusher.min.js';
/**
* Socket.io library
diff --git a/src/main/webapp/js/diagramly/Minimal.js b/src/main/webapp/js/diagramly/Minimal.js
index e8f77e7b..68f15621 100644
--- a/src/main/webapp/js/diagramly/Minimal.js
+++ b/src/main/webapp/js/diagramly/Minimal.js
@@ -126,11 +126,13 @@ EditorUi.initMinimalTheme = function()
if (ui.sidebarWindow == null)
{
var w = Math.min(graph.container.clientWidth - 10, 218);
+ var h = Math.min(graph.container.clientHeight - 40, 650);
- ui.sidebarWindow = new WrapperWindow(ui, mxResources.get('shapes'), 10,
- (urlParams['sketch'] == '1' && urlParams['embedInline'] != '1') ? 15 : 56,
- w - 6, Math.min(650, graph.container.clientHeight - 30),
- function(container)
+ ui.sidebarWindow = new WrapperWindow(ui, mxResources.get('shapes'),
+ (urlParams['sketch'] == '1' && urlParams['embedInline'] != '1') ? 66 : 10,
+ (urlParams['sketch'] == '1' && urlParams['embedInline'] != '1') ?
+ Math.max(30, (graph.container.clientHeight - h) / 2) : 56,
+ w - 6, h - 6, function(container)
{
var div = document.createElement('div');
div.style.cssText = 'position:absolute;left:0;right:0;border-top:1px solid lightgray;' +
diff --git a/src/main/webapp/js/viewer-static.min.js b/src/main/webapp/js/viewer-static.min.js
index 2cadaa9d..ff323dca 100644
--- a/src/main/webapp/js/viewer-static.min.js
+++ b/src/main/webapp/js/viewer-static.min.js
@@ -202,7 +202,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:"16.0.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/"),
+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:"16.0.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==document.createElementNS("http://www.w3.org/2000/svg","foreignObject").toString()||0<=navigator.userAgent.indexOf("Opera/"),
@@ -305,16 +305,17 @@ STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT
STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",
STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",
STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",
-STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",
-STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",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",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};
+STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_SWIMLANE_HEAD:"swimlaneHead",STYLE_SWIMLANE_BODY:"swimlaneBody",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",
+STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",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",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};
@@ -638,10 +639,9 @@ l/2-k,d.y-l-k/2);a.close();a.moveTo(d.x-k,d.y-l);a.lineTo(d.x-2*k-.5*l,d.y+.5*k-
mxActor.prototype.redrawPath=function(a,b,c,d,e){b=d/3;a.moveTo(0,e);a.curveTo(0,3*e/5,0,2*e/5,d/2,2*e/5);a.curveTo(d/2-b,2*e/5,d/2-b,0,d/2,0);a.curveTo(d/2+b,0,d/2+b,2*e/5,d/2,2*e/5);a.curveTo(d,2*e/5,d,3*e/5,d,e);a.close()};function mxCloud(a,b,c,d){mxActor.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxCloud,mxActor);
mxCloud.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(.25*d,.25*e);a.curveTo(.05*d,.25*e,0,.5*e,.16*d,.55*e);a.curveTo(0,.66*e,.18*d,.9*e,.31*d,.8*e);a.curveTo(.4*d,e,.7*d,e,.8*d,.8*e);a.curveTo(d,.8*e,d,.6*e,.875*d,.5*e);a.curveTo(d,.3*e,.8*d,.1*e,.625*d,.2*e);a.curveTo(.5*d,.05*e,.3*d,.05*e,.25*d,.25*e);a.close()};function mxRectangleShape(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxRectangleShape,mxShape);
mxRectangleShape.prototype.isHtmlAllowed=function(){var a=!0;null!=this.style&&(a="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));return!this.isRounded&&!this.glass&&0==this.rotation&&(a||null!=this.fill&&this.fill!=mxConstants.NONE)};
-mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(this.isRounded){var f;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f));a.roundrect(b,c,d,e,f,f)}else a.rect(b,c,d,e);a.fillAndStroke()};
-mxRectangleShape.prototype.isRoundable=function(a,b,c,d,e){return!0};mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){this.glass&&!this.outline&&null!=this.fill&&this.fill!=mxConstants.NONE&&this.paintGlassEffect(a,b,c,d,e,this.getArcSize(d+this.strokewidth,e+this.strokewidth))};function mxEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxEllipse,mxShape);
-mxEllipse.prototype.paintVertexShape=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};function mxDoubleEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxDoubleEllipse,mxShape);mxDoubleEllipse.prototype.paintBackground=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};
-mxDoubleEllipse.prototype.paintForeground=function(a,b,c,d,e){if(!this.outline){var f=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(d/5,e/5)));d-=2*f;e-=2*f;0<d&&0<e&&a.ellipse(b+f,c+f,d,e);a.stroke()}};
+mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(this.isRounded){var f;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f));a.roundrect(b,c,d,e,f,f)}else a.rect(b,c,d,e);a.fillAndStroke()};mxRectangleShape.prototype.isRoundable=function(){return!0};
+mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){this.glass&&!this.outline&&null!=this.fill&&this.fill!=mxConstants.NONE&&this.paintGlassEffect(a,b,c,d,e,this.getArcSize(d+this.strokewidth,e+this.strokewidth))};function mxEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxEllipse,mxShape);mxEllipse.prototype.paintVertexShape=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};
+function mxDoubleEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxDoubleEllipse,mxShape);mxDoubleEllipse.prototype.paintBackground=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};mxDoubleEllipse.prototype.paintForeground=function(a,b,c,d,e){if(!this.outline){var f=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(d/5,e/5)));d-=2*f;e-=2*f;0<d&&0<e&&a.ellipse(b+f,c+f,d,e);a.stroke()}};
mxDoubleEllipse.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(a.width/5/this.scale,a.height/5/this.scale)))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)};function mxRhombus(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxRhombus,mxShape);mxRhombus.prototype.isRoundable=function(){return!0};
mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){var f=d/2,g=e/2,k=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+g),new mxPoint(b+f,c+e),new mxPoint(b,c+g)],this.isRounded,k,!0);a.fillAndStroke()};function mxPolyline(a,b,c){mxShape.call(this);this.points=a;this.stroke=b;this.strokewidth=null!=c?c:1}mxUtils.extend(mxPolyline,mxShape);mxPolyline.prototype.getRotation=function(){return 0};
mxPolyline.prototype.getShapeRotation=function(){return 0};mxPolyline.prototype.isPaintBoundsInverted=function(){return!1};mxPolyline.prototype.paintEdgeShape=function(a,b){var c=a.pointerEventsValue;a.pointerEventsValue="stroke";null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(a,b,this.isRounded):this.paintCurvedLine(a,b);a.pointerEventsValue=c};
@@ -708,7 +708,7 @@ function mxTriangle(){mxActor.call(this)}mxUtils.extend(mxTriangle,mxActor);mxTr
mxHexagon.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(.25*d,0),new mxPoint(.75*d,0),new mxPoint(d,.5*e),new mxPoint(.75*d,e),new mxPoint(.25*d,e),new mxPoint(0,.5*e)],this.isRounded,b,!0)};function mxLine(a,b,c,d){mxShape.call(this);this.bounds=a;this.stroke=b;this.strokewidth=null!=c?c:1;this.vertical=null!=d?d:this.vertical}mxUtils.extend(mxLine,mxShape);mxLine.prototype.vertical=!1;
mxLine.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();if(this.vertical){var f=b+d/2;a.moveTo(f,c);a.lineTo(f,c+e)}else f=c+e/2,a.moveTo(b,f),a.lineTo(b+d,f);a.stroke()};function mxImageShape(a,b,c,d,e){mxShape.call(this);this.bounds=a;this.image=b;this.fill=c;this.stroke=d;this.strokewidth=null!=e?e:1;this.shadow=!1}mxUtils.extend(mxImageShape,mxRectangleShape);mxImageShape.prototype.preserveImageAspect=!0;mxImageShape.prototype.getSvgScreenOffset=function(){return 0};
mxImageShape.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);this.gradient=this.stroke=this.fill=null;null!=this.style&&(this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.imageBackground=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),this.imageBorder=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||
-1==mxUtils.getValue(this.style,"imageFlipV",0))};mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect};mxImageShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxImageShape.prototype.isRoundable=function(a,b,c,d,e){return!1};mxImageShape.prototype.getImageDataUri=function(){return this.image};mxImageShape.prototype.configurePointerEvents=function(a){};
+1==mxUtils.getValue(this.style,"imageFlipV",0))};mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect};mxImageShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxImageShape.prototype.isRoundable=function(){return!1};mxImageShape.prototype.getImageDataUri=function(){return this.image};mxImageShape.prototype.configurePointerEvents=function(a){};
mxImageShape.prototype.paintVertexShape=function(a,b,c,d,e){null!=this.image?(null!=this.imageBackground&&(a.setFillColor(this.imageBackground),a.setStrokeColor(this.imageBorder),a.rect(b,c,d,e),a.fillAndStroke()),a.image(b,c,d,e,this.getImageDataUri(),this.preserveImageAspect,!1,!1),null!=this.imageBorder&&(a.setShadow(!1),a.setStrokeColor(this.imageBorder),a.rect(b,c,d,e),a.stroke())):mxRectangleShape.prototype.paintBackground.apply(this,arguments)};
mxImageShape.prototype.redrawHtmlShape=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px";this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px";this.node.innerHTML="";if(null!=this.image){var a=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,""),b=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,"");this.node.style.backgroundColor=
a;this.node.style.borderColor=b;a=document.createElement("img");a.setAttribute("border","0");a.style.position="absolute";a.src=this.image;b=100>this.opacity?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=b;this.flipH&&this.flipV?b+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?b+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(b+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)");a.style.filter!=b&&(a.style.filter=b);"image"==
@@ -728,18 +728,20 @@ mxConnector.prototype.updateBoundingBox=function(){this.useSvgBoundingBox=null!=
mxConnector.prototype.createMarker=function(a,b,c){var d=null,e=b.length,f=mxUtils.getValue(this.style,c?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW),g=c?b[1]:b[e-2];b=c?b[0]:b[e-1];if(null!=f&&null!=g&&null!=b)var d=b.x-g.x,e=b.y-g.y,k=Math.sqrt(d*d+e*e),g=d/k,d=e/k,e=mxUtils.getNumber(this.style,c?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),d=mxMarker.createMarker(a,this,f,b,g,d,e,c,this.strokewidth,0!=this.style[c?mxConstants.STYLE_STARTFILL:
mxConstants.STYLE_ENDFILL]);return d};
mxConnector.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var b=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1);mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b=Math.max(b,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+
-1);a.grow(b*this.scale)};function mxSwimlane(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxSwimlane,mxShape);mxSwimlane.prototype.imageSize=16;mxSwimlane.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.laneFill=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE))};mxSwimlane.prototype.isRoundable=function(a,b,c,d,e){return!0};
+1);a.grow(b*this.scale)};function mxSwimlane(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxSwimlane,mxShape);mxSwimlane.prototype.imageSize=16;mxSwimlane.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.laneFill=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE))};mxSwimlane.prototype.isRoundable=function(){return!0};
mxSwimlane.prototype.getTitleSize=function(){return Math.max(0,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE))};
-mxSwimlane.prototype.getLabelBounds=function(a){var b=this.getTitleSize();a=new mxRectangle(a.x,a.y,a.width,a.height);var c=this.isHorizontal(),d=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),e=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),f=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH,c=c==!f,d=!c&&d!=(this.direction==mxConstants.DIRECTION_SOUTH||this.direction==mxConstants.DIRECTION_WEST),e=c&&e!=(this.direction==mxConstants.DIRECTION_SOUTH||
-this.direction==mxConstants.DIRECTION_WEST);if(f){b=Math.min(a.width,b*this.scale);if(d||e)a.x+=a.width-b;a.width=b}else{b=Math.min(a.height,b*this.scale);if(d||e)a.y+=a.height-b;a.height=b}return a};mxSwimlane.prototype.getGradientBounds=function(a,b,c,d,e){a=this.getTitleSize();if(this.isHorizontal())return a=Math.min(a,e),new mxRectangle(b,c,d,a);a=Math.min(a,d);return new mxRectangle(b,c,a,e)};
+mxSwimlane.prototype.getLabelBounds=function(a){var b=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),c=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0);a=new mxRectangle(a.x,a.y,a.width,a.height);var d=this.isHorizontal(),e=this.getTitleSize(),f=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH,d=d==!f,b=!d&&b!=(this.direction==mxConstants.DIRECTION_SOUTH||this.direction==mxConstants.DIRECTION_WEST),c=d&&c!=(this.direction==mxConstants.DIRECTION_SOUTH||
+this.direction==mxConstants.DIRECTION_WEST);if(f){e=Math.min(a.width,e*this.scale);if(b||c)a.x+=a.width-e;a.width=e}else{e=Math.min(a.height,e*this.scale);if(b||c)a.y+=a.height-e;a.height=e}return a};mxSwimlane.prototype.getGradientBounds=function(a,b,c,d,e){a=this.getTitleSize();return this.isHorizontal()?new mxRectangle(b,c,d,Math.min(a,e)):new mxRectangle(b,c,Math.min(a,d),e)};
mxSwimlane.prototype.getSwimlaneArcSize=function(a,b,c){if("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0))return Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2));a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return c*a*3};mxSwimlane.prototype.isHorizontal=function(){return 1==mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)};
-mxSwimlane.prototype.paintVertexShape=function(a,b,c,d,e){var f=this.getTitleSize(),g=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),k=0,f=this.isHorizontal()?Math.min(f,e):Math.min(f,d);a.translate(b,c);this.isRounded?(k=this.getSwimlaneArcSize(d,e,f),k=Math.min((this.isHorizontal()?e:d)-f,Math.min(f,k)),this.paintRoundedSwimlane(a,b,c,d,e,f,k,this.laneFill,g)):this.paintSwimlane(a,b,c,d,e,f,this.laneFill,g);g=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);
-this.paintSeparator(a,b,c,d,e,f,g);null!=this.image&&(e=this.getImageBounds(b,c,d,e),a.image(e.x-b,e.y-c,e.width,e.height,this.image,!1,!1,!1));this.glass&&(a.setShadow(!1),this.paintGlassEffect(a,0,0,d,f,k))};
-mxSwimlane.prototype.paintSwimlane=function(a,b,c,d,e,f,g,k){a.begin();var l=!0;null!=this.style&&(l="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));this.isHorizontal()?(a.moveTo(0,f),a.lineTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.fillAndStroke(),f<e&&(g!=mxConstants.NONE&&l||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(0,f),a.lineTo(0,e),a.lineTo(d,e),a.lineTo(d,f),g==mxConstants.NONE?a.stroke():a.fillAndStroke())):(a.moveTo(f,0),a.lineTo(0,
-0),a.lineTo(0,e),a.lineTo(f,e),a.fillAndStroke(),f<d&&(g!=mxConstants.NONE&&l||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(f,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(f,e),g==mxConstants.NONE?a.stroke():a.fillAndStroke()));k&&this.paintDivider(a,b,c,d,e,f,g==mxConstants.NONE)};
-mxSwimlane.prototype.paintRoundedSwimlane=function(a,b,c,d,e,f,g,k,l){a.begin();var m=!0;null!=this.style&&(m="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,g),a.quadTo(d,0,d-Math.min(d/2,g),0),a.lineTo(Math.min(d/2,g),0),a.quadTo(0,0,0,g),a.lineTo(0,f),a.fillAndStroke(),f<e&&(k!=mxConstants.NONE&&m||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(0,f),a.lineTo(0,e-g),a.quadTo(0,e,Math.min(d/2,g),
-e),a.lineTo(d-Math.min(d/2,g),e),a.quadTo(d,e,d,e-g),a.lineTo(d,f),k==mxConstants.NONE?a.stroke():a.fillAndStroke())):(a.moveTo(f,0),a.lineTo(g,0),a.quadTo(0,0,0,Math.min(e/2,g)),a.lineTo(0,e-Math.min(e/2,g)),a.quadTo(0,e,g,e),a.lineTo(f,e),a.fillAndStroke(),f<d&&(k!=mxConstants.NONE&&m||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(f,e),a.lineTo(d-g,e),a.quadTo(d,e,d,e-Math.min(e/2,g)),a.lineTo(d,Math.min(e/2,g)),a.quadTo(d,0,d-g,0),a.lineTo(f,0),k==mxConstants.NONE?
-a.stroke():a.fillAndStroke()));l&&this.paintDivider(a,b,c,d,e,f,k==mxConstants.NONE)};mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.begin();this.isHorizontal()?(a.moveTo(0,f),a.lineTo(d,f)):(a.moveTo(f,0),a.lineTo(f,e));a.stroke()};mxSwimlane.prototype.paintSeparator=function(a,b,c,d,e,f,g){g!=mxConstants.NONE&&(a.setStrokeColor(g),a.setDashed(!0),a.begin(),this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,e)):(a.moveTo(f,0),a.lineTo(d,0)),a.stroke(),a.setDashed(!1))};
+mxSwimlane.prototype.paintVertexShape=function(a,b,c,d,e){if(!this.outline){var f=this.getTitleSize(),g=0,f=this.isHorizontal()?Math.min(f,e):Math.min(f,d);a.translate(b,c);this.isRounded?(g=this.getSwimlaneArcSize(d,e,f),g=Math.min((this.isHorizontal()?e:d)-f,Math.min(f,g)),this.paintRoundedSwimlane(a,b,c,d,e,f,g)):this.paintSwimlane(a,b,c,d,e,f);var k=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);this.paintSeparator(a,b,c,d,e,f,k);null!=this.image&&(e=this.getImageBounds(b,
+c,d,e),a.image(e.x-b,e.y-c,e.width,e.height,this.image,!1,!1,!1));this.glass&&(a.setShadow(!1),this.paintGlassEffect(a,0,0,d,f,g))}};mxSwimlane.prototype.configurePointerEvents=function(a){var b=!0,c=!0,d=!0;null!=this.style&&(b="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),c=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),d=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));(b||c||d)&&mxShape.prototype.configurePointerEvents.apply(this,arguments)};
+mxSwimlane.prototype.paintSwimlane=function(a,b,c,d,e,f){var g=this.laneFill,k=!0,l=!0,m=!0,n=!0;null!=this.style&&(k="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),l=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),m=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),n=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));this.isHorizontal()?(a.begin(),a.moveTo(0,f),a.lineTo(0,0),a.lineTo(d,0),a.lineTo(d,f),m?a.fillAndStroke():
+a.fill(),f<e&&(g!=mxConstants.NONE&&k||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(0,f),a.lineTo(0,e),a.lineTo(d,e),a.lineTo(d,f),n?g==mxConstants.NONE?a.stroke():n&&a.fillAndStroke():g!=mxConstants.NONE&&a.fill())):(a.begin(),a.moveTo(f,0),a.lineTo(0,0),a.lineTo(0,e),a.lineTo(f,e),m?a.fillAndStroke():a.fill(),f<d&&(g!=mxConstants.NONE&&k||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(f,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(f,e),
+n?g==mxConstants.NONE?a.stroke():n&&a.fillAndStroke():g!=mxConstants.NONE&&a.fill()));l&&this.paintDivider(a,b,c,d,e,f,g==mxConstants.NONE)};
+mxSwimlane.prototype.paintRoundedSwimlane=function(a,b,c,d,e,f,g){var k=this.laneFill,l=!0,m=!0,n=!0,p=!0;null!=this.style&&(l="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),m=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),n=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),p=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));this.isHorizontal()?(a.begin(),a.moveTo(d,f),a.lineTo(d,g),a.quadTo(d,0,d-Math.min(d/2,g),0),a.lineTo(Math.min(d/
+2,g),0),a.quadTo(0,0,0,g),a.lineTo(0,f),n?a.fillAndStroke():a.fill(),f<e&&(k!=mxConstants.NONE&&l||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(0,f),a.lineTo(0,e-g),a.quadTo(0,e,Math.min(d/2,g),e),a.lineTo(d-Math.min(d/2,g),e),a.quadTo(d,e,d,e-g),a.lineTo(d,f),p?k==mxConstants.NONE?a.stroke():p&&a.fillAndStroke():k!=mxConstants.NONE&&a.fill())):(a.begin(),a.moveTo(f,0),a.lineTo(g,0),a.quadTo(0,0,0,Math.min(e/2,g)),a.lineTo(0,e-Math.min(e/2,g)),a.quadTo(0,e,g,e),a.lineTo(f,
+e),n?a.fillAndStroke():a.fill(),f<d&&(k!=mxConstants.NONE&&l||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(f,e),a.lineTo(d-g,e),a.quadTo(d,e,d,e-Math.min(e/2,g)),a.lineTo(d,Math.min(e/2,g)),a.quadTo(d,0,d-g,0),a.lineTo(f,0),p?k==mxConstants.NONE?a.stroke():p&&a.fillAndStroke():k!=mxConstants.NONE&&a.fill()));m&&this.paintDivider(a,b,c,d,e,f,k==mxConstants.NONE)};
+mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){0!=f&&(g||a.setShadow(!1),a.begin(),this.isHorizontal()?(a.moveTo(0,f),a.lineTo(d,f)):(a.moveTo(f,0),a.lineTo(f,e)),a.stroke())};mxSwimlane.prototype.paintSeparator=function(a,b,c,d,e,f,g){g!=mxConstants.NONE&&(a.setStrokeColor(g),a.setDashed(!0),a.begin(),this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,e)):(a.moveTo(f,0),a.lineTo(d,0)),a.stroke(),a.setDashed(!1))};
mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.resizeCell=function(a,b){};mxGraphLayout.prototype.execute=function(a){};
mxGraphLayout.prototype.getGraph=function(){return this.graph};mxGraphLayout.prototype.getConstraint=function(a,b,c,d){return this.graph.getCurrentCellStyle(b)[a]};
mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}};
@@ -2140,8 +2142,8 @@ k.addListener(mxEvent.EDITING_STARTED,this.selectionStateListener);k.addListener
t="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),d="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(b){try{var d=k.getCellStyle(b,!1),g=[],c=[],e;for(e in d)g.push(d[e]),c.push(e);k.getModel().isEdge(b)?k.currentEdgeStyle={}:k.currentVertexStyle=
{};this.fireEvent(new mxEventObject("styleChanged","keys",c,"values",g,"cells",[b]))}catch(B){this.handleError(B)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var g=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<g.length;c++)0>mxUtils.indexOf(p,g[c])&&p.push(g[c]);var l="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),
q=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(c=0;c<q.length;c++)for(e=0;e<q[c].length;e++)p.push(q[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(p,t[c])&&p.push(t[c]);var m=function(b,g,c,e,l,f,m){e=null!=e?e:k.currentVertexStyle;l=null!=l?l:k.currentEdgeStyle;f=null!=f?f:!0;c=null!=c?c:k.getModel();if(m){m=[];
-for(var G=0;G<b.length;G++)m=m.concat(c.getDescendants(b[G]));b=m}c.beginUpdate();try{for(G=0;G<b.length;G++){var n=b[G],v;if(g)v=["fontSize","fontFamily","fontColor"];else{var B=c.getStyle(n),u=null!=B?B.split(";"):[];v=p.slice();for(var t=0;t<u.length;t++){var I=u[t],x=I.indexOf("=");if(0<=x){var L=I.substring(0,x),y=mxUtils.indexOf(v,L);0<=y&&v.splice(y,1);for(m=0;m<q.length;m++){var z=q[m];if(0<=mxUtils.indexOf(z,L))for(var ca=0;ca<z.length;ca++){var C=mxUtils.indexOf(v,z[ca]);0<=C&&v.splice(C,
-1)}}}}}var U=c.isEdge(n);m=U?l:e;for(var D=c.getStyle(n),t=0;t<v.length;t++){var L=v[t],O=m[L];null!=O&&"edgeStyle"!=L&&("shape"!=L||U)&&(!U||f||0>mxUtils.indexOf(d,L))&&(D=mxUtils.setStyle(D,L,O))}Editor.simpleLabels&&(D=mxUtils.setStyle(mxUtils.setStyle(D,"html",null),"whiteSpace",null));c.setStyle(n,D)}}finally{c.endUpdate()}return b};k.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){m(d.getProperty("cells"),
+for(var G=0;G<b.length;G++)m=m.concat(c.getDescendants(b[G]));b=m}c.beginUpdate();try{for(G=0;G<b.length;G++){var n=b[G],B;if(g)B=["fontSize","fontFamily","fontColor"];else{var v=c.getStyle(n),u=null!=v?v.split(";"):[];B=p.slice();for(var I=0;I<u.length;I++){var t=u[I],x=t.indexOf("=");if(0<=x){var M=t.substring(0,x),y=mxUtils.indexOf(B,M);0<=y&&B.splice(y,1);for(m=0;m<q.length;m++){var z=q[m];if(0<=mxUtils.indexOf(z,M))for(var ca=0;ca<z.length;ca++){var C=mxUtils.indexOf(B,z[ca]);0<=C&&B.splice(C,
+1)}}}}}var U=c.isEdge(n);m=U?l:e;for(var D=c.getStyle(n),I=0;I<B.length;I++){var M=B[I],P=m[M];null!=P&&"edgeStyle"!=M&&("shape"!=M||U)&&(!U||f||0>mxUtils.indexOf(d,M))&&(D=mxUtils.setStyle(D,M,P))}Editor.simpleLabels&&(D=mxUtils.setStyle(mxUtils.setStyle(D,"html",null),"whiteSpace",null));c.setStyle(n,D)}}finally{c.endUpdate()}return b};k.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){m(d.getProperty("cells"),
!0)});this.insertHandler=m;this.createDivs();this.createUi();this.refresh();var n=mxUtils.bind(this,function(b){null==b&&(b=window.event);return k.isEditing()||null!=b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=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(b){if(null!=b){var d=mxEvent.getSource(b);if("A"==d.nodeName)for(;null!=d;){if("geHint"==d.className)return!0;d=d.parentNode}}return n(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,
"contextmenu",c):this.diagramContainer.oncontextmenu=c):k.panningHandler.usePopupTrigger=!1;k.init(this.diagramContainer);mxClient.IS_SVG&&null!=k.view.getDrawPane()&&(c=k.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=k.graphHandler){var u=k.graphHandler.start;k.graphHandler.start=function(){null!=C.hoverIcons&&C.hoverIcons.reset();u.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,
@@ -2150,7 +2152,7 @@ mxEvent.isConsumed(b)||27!=b.keyCode||this.hideDialog(null,!0):(v=!0,this.hoverI
arguments)||v||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var F=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(b){return F.apply(this,arguments)||13==b.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxClient.IS_SF&&mxEvent.isShiftDown(b))};var H=k.isZoomWheelEvent;
k.isZoomWheelEvent=function(){return v||H.apply(this,arguments)};var z=!1,D=null,N=null,E=null,J=mxUtils.bind(this,function(){if(null!=this.toolbar&&z!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var g=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=g}b=this.toolbar.fontMenu;g=this.toolbar.sizeMenu;if(null==E)this.toolbar.createTextToolbar();else{for(var c=0;c<E.length;c++)this.toolbar.container.appendChild(E[c]);
this.toolbar.fontMenu=D;this.toolbar.sizeMenu=N}z=k.cellEditor.isContentEditing();D=b;N=g;E=d}}),C=this,K=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){K.apply(this,arguments);J();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=C.toolbar&&(C.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),C.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},
-0))};mxEvent.addListener(k.cellEditor.textarea,"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var M=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{M.apply(this,arguments),J()}catch(U){C.handleError(U)}};k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(L){}var Z=
+0))};mxEvent.addListener(k.cellEditor.textarea,"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var L=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{L.apply(this,arguments),J()}catch(U){C.handleError(U)}};k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(M){}var Z=
k.fireMouseEvent;k.fireMouseEvent=function(b,d,g){b==mxEvent.MOUSE_DOWN&&this.container.focus();Z.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,g){this.menus.createPopupMenu(b,d,g)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,
function(b,d){var g=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(g.push(d.getProperty("terminal")),window.setTimeout(function(){null!=C.hoverIcons&&C.hoverIcons.update(k.view.getState(g[g.length-1]))},0));m(g)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),e=!1,f=!1;if(0<c.length)for(var q=0;q<c.length&&(e=k.getModel().isVertex(c[q])||e,!(f=k.getModel().isEdge(c[q])||f)||!e);q++);else f=e=!0;for(var c=d.getProperty("keys"),m=d.getProperty("values"),
q=0;q<c.length;q++){var n=0<=mxUtils.indexOf(g,c[q]);if("strokeColor"!=c[q]||null!=m[q]&&"none"!=m[q])if(0<=mxUtils.indexOf(t,c[q]))f||0<=mxUtils.indexOf(l,c[q])?null==m[q]?delete k.currentEdgeStyle[c[q]]:k.currentEdgeStyle[c[q]]=m[q]:e&&0<=mxUtils.indexOf(p,c[q])&&(null==m[q]?delete k.currentVertexStyle[c[q]]:k.currentVertexStyle[c[q]]=m[q]);else if(0<=mxUtils.indexOf(p,c[q])){if(e||n)null==m[q]?delete k.currentVertexStyle[c[q]]:k.currentVertexStyle[c[q]]=m[q];if(f||n||0<=mxUtils.indexOf(l,c[q]))null==
@@ -2169,14 +2171,14 @@ EditorUi.prototype.init=function(){var b=this.editor.graph;if(!b.standalone){"0"
"keydown",mxUtils.bind(this,function(b){this.onKeyDown(b)}));mxEvent.addListener(b.container,"keypress",mxUtils.bind(this,function(b){this.onKeyPress(b)}));this.addUndoListener();this.addBeforeUnloadListener();b.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));b.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));var c=b.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){c.apply(this,
arguments);e.updateActionStates()};b.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};EditorUi.prototype.clearSelectionState=function(){this.selectionState=null};EditorUi.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState};
EditorUi.prototype.createSelectionState=function(){for(var b=this.editor.graph,c=b.getSelectionCells(),e=this.initSelectionState(),k=!0,f=0;f<c.length;f++){var p=b.getCurrentCellStyle(c[f]);"0"!=mxUtils.getValue(p,mxConstants.STYLE_EDITABLE,"1")&&(this.updateSelectionStateForCell(e,c[f],c,k),k=!1)}this.updateSelectionStateForTableCells(e);return e};
-EditorUi.prototype.initSelectionState=function(){return{vertices:[],edges:[],cells:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,autoSize:!1,image:!0,shadow:!0,lineJumps:!0,resizable:!0,table:!1,cell:!1,row:!1,movable:!0,rotatable:!0,stroke:!0,unlocked:this.editor.graph.isEnabled(),connections:!1}};EditorUi.prototype.updateSelectionStateForTableCells=function(b){};
-EditorUi.prototype.updateSelectionStateForCell=function(b,c,e,k){e=this.editor.graph;b.cells.push(c);if(e.getModel().isVertex(c)){b.connections=0<e.model.getEdgeCount(c);b.unlocked=b.unlocked&&!e.isCellLocked(c);b.resizable=b.resizable&&e.isCellResizable(c);b.rotatable=b.rotatable&&e.isCellRotatable(c);b.movable=b.movable&&e.isCellMovable(c)&&!e.isTableRow(c)&&!e.isTableCell(c);b.table=b.table||e.isTable(c);b.cell=b.cell||e.isTableCell(c);b.row=b.row||e.isTableRow(c);b.vertices.push(c);var f=e.getCellGeometry(c);
-if(null!=f&&(0<f.width?null==b.width?b.width=f.width:b.width!=f.width&&(b.width=""):b.containsLabel=!0,0<f.height?null==b.height?b.height=f.height:b.height!=f.height&&(b.height=""):b.containsLabel=!0,!f.relative||null!=f.offset)){var p=f.relative?f.offset.x:f.x,f=f.relative?f.offset.y:f.y;null==b.x?b.x=p:b.x!=p&&(b.x="");null==b.y?b.y=f:b.y!=f&&(b.y="")}}else e.getModel().isEdge(c)&&(b.edges.push(c),b.connections=!0,b.resizable=!1,b.rotatable=!1,b.movable=!1);c=e.view.getState(c);null!=c&&(b.autoSize=
-b.autoSize||e.isAutoSizeState(c),b.glass=b.glass&&e.isGlassState(c),b.rounded=b.rounded&&e.isRoundedState(c),b.lineJumps=b.lineJumps&&e.isLineJumpState(c),b.image=b.image&&e.isImageState(c),b.shadow=b.shadow&&e.isShadowState(c),b.fill=b.fill&&e.isFillState(c),b.stroke=b.stroke&&e.isStrokeState(c),p=mxUtils.getValue(c.style,mxConstants.STYLE_SHAPE,null),b.containsImage=b.containsImage||"image"==p,e.mergeStyle(c.style,b.style,k))};
+EditorUi.prototype.initSelectionState=function(){return{vertices:[],edges:[],cells:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,autoSize:!1,image:!0,shadow:!0,lineJumps:!0,resizable:!0,table:!1,cell:!1,row:!1,movable:!0,rotatable:!0,stroke:!0,swimlane:!1,unlocked:this.editor.graph.isEnabled(),connections:!1}};EditorUi.prototype.updateSelectionStateForTableCells=function(b){};
+EditorUi.prototype.updateSelectionStateForCell=function(b,c,e,k){e=this.editor.graph;b.cells.push(c);if(e.getModel().isVertex(c)){b.connections=0<e.model.getEdgeCount(c);b.unlocked=b.unlocked&&!e.isCellLocked(c);b.resizable=b.resizable&&e.isCellResizable(c);b.rotatable=b.rotatable&&e.isCellRotatable(c);b.movable=b.movable&&e.isCellMovable(c)&&!e.isTableRow(c)&&!e.isTableCell(c);b.swimlane=b.swimlane||e.isSwimlane(c);b.table=b.table||e.isTable(c);b.cell=b.cell||e.isTableCell(c);b.row=b.row||e.isTableRow(c);
+b.vertices.push(c);var f=e.getCellGeometry(c);if(null!=f&&(0<f.width?null==b.width?b.width=f.width:b.width!=f.width&&(b.width=""):b.containsLabel=!0,0<f.height?null==b.height?b.height=f.height:b.height!=f.height&&(b.height=""):b.containsLabel=!0,!f.relative||null!=f.offset)){var p=f.relative?f.offset.x:f.x,f=f.relative?f.offset.y:f.y;null==b.x?b.x=p:b.x!=p&&(b.x="");null==b.y?b.y=f:b.y!=f&&(b.y="")}}else e.getModel().isEdge(c)&&(b.edges.push(c),b.connections=!0,b.resizable=!1,b.rotatable=!1,b.movable=
+!1);c=e.view.getState(c);null!=c&&(b.autoSize=b.autoSize||e.isAutoSizeState(c),b.glass=b.glass&&e.isGlassState(c),b.rounded=b.rounded&&e.isRoundedState(c),b.lineJumps=b.lineJumps&&e.isLineJumpState(c),b.image=b.image&&e.isImageState(c),b.shadow=b.shadow&&e.isShadowState(c),b.fill=b.fill&&e.isFillState(c),b.stroke=b.stroke&&e.isStrokeState(c),p=mxUtils.getValue(c.style,mxConstants.STYLE_SHAPE,null),b.containsImage=b.containsImage||"image"==p,e.mergeStyle(c.style,b.style,k))};
EditorUi.prototype.installShapePicker=function(){var b=this.editor.graph,c=this;b.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){"mouseDown"==d.getProperty("eventName")&&c.hideShapePicker()}));var e=mxUtils.bind(this,function(){c.hideShapePicker(!0)});b.addListener("wheel",e);b.addListener(mxEvent.ESCAPE,e);b.view.addListener(mxEvent.SCALE,e);b.view.addListener(mxEvent.SCALE_AND_TRANSLATE,e);b.getSelectionModel().addListener(mxEvent.CHANGE,e);b.getModel().addListener(mxEvent.CHANGE,
e);var k=b.popupMenuHandler.isMenuShowing;b.popupMenuHandler.isMenuShowing=function(){return k.apply(this,arguments)||null!=c.shapePicker};var f=b.dblClick;b.dblClick=function(d,e){if(this.isEnabled())if(null!=e||null==c.sidebar||mxEvent.isShiftDown(d)||b.isCellLocked(b.getDefaultParent()))f.apply(this,arguments);else{var g=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d));mxEvent.consume(d);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(g.x,g.y)}),
-30)}};if(null!=this.hoverIcons){this.hoverIcons.addListener("reset",e);var p=this.hoverIcons.drag;this.hoverIcons.drag=function(){c.hideShapePicker();p.apply(this,arguments)};var t=this.hoverIcons.execute;this.hoverIcons.execute=function(d,e,f){var g=f.getEvent();this.graph.isCloneEvent(g)||mxEvent.isShiftDown(g)?t.apply(this,arguments):this.graph.connectVertex(d.cell,e,this.graph.defaultEdgeLength,g,null,null,mxUtils.bind(this,function(g,l,q){var k=b.getCompositeParent(d.cell);g=b.getCellGeometry(k);
-for(f.consume();null!=k&&b.model.isVertex(k)&&null!=g&&g.relative;)cell=k,k=b.model.getParent(cell),g=b.getCellGeometry(k);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(f.getGraphX(),f.getGraphY(),k,mxUtils.bind(this,function(d){q(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))}),e)}),30)}),mxUtils.bind(this,function(b){this.graph.selectCellsForConnectVertex(b,g,this)}))};var d=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(g,e){null!=d&&window.clearTimeout(d);
+30)}};if(null!=this.hoverIcons){this.hoverIcons.addListener("reset",e);var p=this.hoverIcons.drag;this.hoverIcons.drag=function(){c.hideShapePicker();p.apply(this,arguments)};var t=this.hoverIcons.execute;this.hoverIcons.execute=function(d,e,f){var g=f.getEvent();this.graph.isCloneEvent(g)||mxEvent.isShiftDown(g)?t.apply(this,arguments):this.graph.connectVertex(d.cell,e,this.graph.defaultEdgeLength,g,null,null,mxUtils.bind(this,function(g,l,k){var q=b.getCompositeParent(d.cell);g=b.getCellGeometry(q);
+for(f.consume();null!=q&&b.model.isVertex(q)&&null!=g&&g.relative;)cell=q,q=b.model.getParent(cell),g=b.getCellGeometry(q);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(f.getGraphX(),f.getGraphY(),q,mxUtils.bind(this,function(d){k(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))}),e)}),30)}),mxUtils.bind(this,function(b){this.graph.selectCellsForConnectVertex(b,g,this)}))};var d=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(g,e){null!=d&&window.clearTimeout(d);
d=window.setTimeout(mxUtils.bind(this,function(){var d=e.getProperty("arrow"),g=e.getProperty("direction"),l=e.getProperty("event"),d=d.getBoundingClientRect(),f=mxUtils.getOffset(b.container),k=b.container.scrollLeft+d.x-f.x,f=b.container.scrollTop+d.y-f.y,t=b.getCompositeParent(null!=this.hoverIcons.currentState?this.hoverIcons.currentState.cell:null),p=c.showShapePicker(k,f,t,mxUtils.bind(this,function(d){null!=d&&b.connectVertex(t,g,b.defaultEdgeLength,l,!0,!0,function(g,e,l){l(d);null!=c.hoverIcons&&
c.hoverIcons.update(b.view.getState(d))},function(d){b.selectCellsForConnectVertex(d)},l,this.hoverIcons)}),g,!0);this.centerShapePicker(p,d,k,f,g);mxUtils.setOpacity(p,30);mxEvent.addListener(p,"mouseenter",function(){mxUtils.setOpacity(p,100)});mxEvent.addListener(p,"mouseleave",function(){c.hideShapePicker()})}),Editor.shapePickerHoverDelay)}));this.hoverIcons.addListener("blur",mxUtils.bind(this,function(b,c){null!=d&&window.clearTimeout(d)}))}};
EditorUi.prototype.centerShapePicker=function(b,c,e,k,f){if(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST)b.style.width="40px";var p=b.getBoundingClientRect();f==mxConstants.DIRECTION_NORTH?(e-=p.width/2-10,k-=p.height+6):f==mxConstants.DIRECTION_SOUTH?(e-=p.width/2-10,k+=c.height+6):f==mxConstants.DIRECTION_WEST?(e-=p.width+6,k-=p.height/2-10):f==mxConstants.DIRECTION_EAST&&(e+=c.width+6,k-=p.height/2-10);b.style.left=e+"px";b.style.top=k+"px"};
@@ -2204,8 +2206,8 @@ null;c.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):f=e.a
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var b=this.editor.graph;b.timerAutoScroll=!0;b.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((b.container.offsetWidth-34)/b.view.scale)),Math.max(0,Math.round((b.container.offsetHeight-34)/b.view.scale)))};b.view.getBackgroundPageBounds=function(){var b=this.graph.getPageLayout(),d=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+b.x*d.width),this.scale*(this.translate.y+b.y*d.height),this.scale*b.width*d.width,
this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,g){b=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,b.width*d.width,b.height*d.height)};var c=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(d,g,c,e){if(null!=b.container&&!b.isViewer()){c=null!=c?c:0;e=null!=e?e:0;var l=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),f=mxUtils.hasScrollbars(b.container),k=b.view.translate,q=b.view.scale,m=mxRectangle.fromRectangle(l);
-m.x=m.x/q-k.x;m.y=m.y/q-k.y;m.width/=q;m.height/=q;var k=b.container.scrollTop,G=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var v=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(g||1,v/m.width)):q;g=(v-d*m.width)/2/d;var u=0==this.lightboxVerticalDivider?0:(n-d*m.height)/this.lightboxVerticalDivider/d;f&&(g=Math.max(g,0),u=Math.max(u,0));if(f||l.width<v||l.height<n)b.view.scaleAndTranslate(d,Math.floor(g-
-m.x),Math.floor(u-m.y)),b.container.scrollTop=k*d/q,b.container.scrollLeft=G*d/q;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/q),Math.floor(l.y+e/q))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+m.x=m.x/q-k.x;m.y=m.y/q-k.y;m.width/=q;m.height/=q;var k=b.container.scrollTop,G=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var v=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(g||1,v/m.width)):q;g=(v-d*m.width)/2/d;var B=0==this.lightboxVerticalDivider?0:(n-d*m.height)/this.lightboxVerticalDivider/d;f&&(g=Math.max(g,0),B=Math.max(B,0));if(f||l.width<v||l.height<n)b.view.scaleAndTranslate(d,Math.floor(g-
+m.x),Math.floor(B-m.y)),b.container.scrollTop=k*d/q,b.container.scrollLeft=G*d/q;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/q),Math.floor(l.y+e/q))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(d){b.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(d){b.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.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=b.isViewer()?"0":"50%";mxClient.IS_IE||mxClient.IS_IE11?(this.chromelessToolbar.style.backgroundColor="#ffffff",this.chromelessToolbar.style.border="3px solid black"):this.chromelessToolbar.style.backgroundColor="#000000";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","16px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,
"transition","opacity 600ms ease-in-out");var p=mxUtils.bind(this,function(){var d=mxUtils.getCurrentStyle(b.container);b.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=d?parseInt(d["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",p);p();var t=0,p=mxUtils.bind(this,function(b,d,g){t++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight=
@@ -2225,14 +2227,14 @@ mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hid
g.getGraphX();this.startY=g.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,g){mxEvent.isTouchEvent(g.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<z&&Math.abs(this.scrollTop-b.container.scrollTop)<z&&Math.abs(this.startX-g.getGraphX())<z&&Math.abs(this.startY-g.getGraphY())<z&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?v():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var D=
b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}D.apply(this,arguments)};if(!b.isViewer()){var N=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),g=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
g.x+d.width*c.width),l=Math.ceil(2*g.y+d.height*c.height),f=b.minimumGraphSize;if(null==f||f.width!=e||f.height!=l)b.minimumGraphSize=new mxRectangle(0,0,e,l);e=g.x-d.x*c.width;g=g.y-d.y*c.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==g?N.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=b.view.translate.x,c=b.view.translate.y,b.view.setTranslate(e,g),b.container.scrollLeft+=Math.round((e-d)*b.view.scale),b.container.scrollTop+=Math.round((g-
-c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var E=b.view.getBackgroundPane(),J=b.view.getDrawPane();b.cumulativeZoomFactor=1;var C=null,K=null,M=null,Z=null,L=null,O=function(d){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!b.isMouseDown||Z)C=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
+c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var E=b.view.getBackgroundPane(),J=b.view.getDrawPane();b.cumulativeZoomFactor=1;var C=null,K=null,L=null,Z=null,M=null,P=function(d){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!b.isMouseDown||Z)C=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
"transform-origin",null),mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,"transform",null)),J.style.transformOrigin="",E.style.transformOrigin="",mxClient.IS_SF?(J.style.transform="scale(1)",E.style.transform="scale(1)",window.setTimeout(function(){J.style.transform="";E.style.transform=""},0)):(J.style.transform="",E.style.transform=""),b.view.getDecoratorPane().style.opacity="",b.view.getOverlayPane().style.opacity="");var d=new mxPoint(b.container.scrollLeft,b.container.scrollTop),
-g=mxUtils.getOffset(b.container),l=b.view.scale,f=0,k=0;null!=K&&(f=b.container.offsetWidth/2-K.x+g.x,k=b.container.offsetHeight/2-K.y+g.y);b.zoom(b.cumulativeZoomFactor,null,20);b.view.scale!=l&&(null!=M&&(f+=d.x-M.x,k+=d.y-M.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),k*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==k||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=k*(b.cumulativeZoomFactor-1)));null!=L&&J.setAttribute("filter",
-L);b.cumulativeZoomFactor=1;L=Z=K=M=C=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,g,c,l){l=null!=l?l:this.zoomFactor;(g=g||!b.scrollbars)&&(K=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=l,this.cumulativeZoomFactor=Math.round(this.view.scale*
-this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=l,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;b.isFastZoomEnabled()&&(null==L&&""!=J.getAttribute("filter")&&(L=J.getAttribute("filter"),
-J.removeAttribute("filter")),M=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=g||null==K?b.container.scrollLeft+b.container.clientWidth/2:K.x+b.container.scrollLeft-b.container.offsetLeft,l=g||null==K?b.container.scrollTop+b.container.clientHeight/2:K.y+b.container.scrollTop-b.container.offsetTop,J.style.transformOrigin=d+"px "+l+"px",J.style.transform="scale("+this.cumulativeZoomFactor+")",E.style.transformOrigin=d+"px "+l+"px",E.style.transform="scale("+this.cumulativeZoomFactor+")",
+g=mxUtils.getOffset(b.container),l=b.view.scale,f=0,k=0;null!=K&&(f=b.container.offsetWidth/2-K.x+g.x,k=b.container.offsetHeight/2-K.y+g.y);b.zoom(b.cumulativeZoomFactor,null,20);b.view.scale!=l&&(null!=L&&(f+=d.x-L.x,k+=d.y-L.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),k*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==k||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=k*(b.cumulativeZoomFactor-1)));null!=M&&J.setAttribute("filter",
+M);b.cumulativeZoomFactor=1;M=Z=K=L=C=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,g,c,l){l=null!=l?l:this.zoomFactor;(g=g||!b.scrollbars)&&(K=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=l,this.cumulativeZoomFactor=Math.round(this.view.scale*
+this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=l,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;b.isFastZoomEnabled()&&(null==M&&""!=J.getAttribute("filter")&&(M=J.getAttribute("filter"),
+J.removeAttribute("filter")),L=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=g||null==K?b.container.scrollLeft+b.container.clientWidth/2:K.x+b.container.scrollLeft-b.container.offsetLeft,l=g||null==K?b.container.scrollTop+b.container.clientHeight/2:K.y+b.container.scrollTop-b.container.offsetTop,J.style.transformOrigin=d+"px "+l+"px",J.style.transform="scale("+this.cumulativeZoomFactor+")",E.style.transformOrigin=d+"px "+l+"px",E.style.transform="scale("+this.cumulativeZoomFactor+")",
null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(d=b.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(d.style,"transform-origin",(g||null==K?b.container.clientWidth/2+b.container.scrollLeft-d.offsetLeft+"px":K.x+b.container.scrollLeft-d.offsetLeft-b.container.offsetLeft+"px")+" "+(g||null==K?b.container.clientHeight/2+b.container.scrollTop-d.offsetTop+"px":K.y+b.container.scrollTop-d.offsetTop-b.container.offsetTop+"px")),mxUtils.setPrefixedStyle(d.style,"transform",
-"scale("+this.cumulativeZoomFactor+")")),b.view.getDecoratorPane().style.opacity="0",b.view.getOverlayPane().style.opacity="0",null!=e.hoverIcons&&e.hoverIcons.reset());O(c)};mxEvent.addGestureListeners(b.container,function(b){null!=C&&window.clearTimeout(C)},null,function(d){1!=b.cumulativeZoomFactor&&O(0)});mxEvent.addListener(b.container,"scroll",function(d){null==C||b.isMouseDown||1==b.cumulativeZoomFactor||O(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,g,c,e,l){b.fireEvent(new mxEventObject("wheel"));
+"scale("+this.cumulativeZoomFactor+")")),b.view.getDecoratorPane().style.opacity="0",b.view.getOverlayPane().style.opacity="0",null!=e.hoverIcons&&e.hoverIcons.reset());P(c)};mxEvent.addGestureListeners(b.container,function(b){null!=C&&window.clearTimeout(C)},null,function(d){1!=b.cumulativeZoomFactor&&P(0)});mxEvent.addListener(b.container,"scroll",function(d){null==C||b.isMouseDown||1==b.cumulativeZoomFactor||P(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,g,c,e,l){b.fireEvent(new mxEventObject("wheel"));
if(null==this.dialogs||0==this.dialogs.length)if(!b.scrollbars&&!c&&b.isScrollWheelEvent(d))c=b.view.getTranslate(),e=40/b.view.scale,mxEvent.isShiftDown(d)?b.view.setTranslate(c.x+(g?-e:e),c.y):b.view.setTranslate(c.x,c.y+(g?e:-e));else if(c||b.isZoomWheelEvent(d))for(var f=mxEvent.getSource(d);null!=f;){if(f==b.container)return b.tooltipHandler.hideTooltip(),K=null!=e&&null!=l?new mxPoint(e,l):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),Z=c,c=b.zoomFactor,null!=d.deltaY&&Math.round(d.deltaY)!=
d.deltaY&&(c=1+Math.abs(d.deltaY)/20*(c-1)),b.lazyZoom(g,null,null,c),mxEvent.consume(d),!1;f=f.parentNode}}),b.container);b.panningHandler.zoomGraph=function(d){b.cumulativeZoomFactor=d.scale;b.lazyZoom(0<d.scale,!0);mxEvent.consume(d)}};EditorUi.prototype.addChromelessToolbarItems=function(b){b(mxUtils.bind(this,function(b){this.actions.get("print").funct();mxEvent.consume(b)}),Editor.printImage,mxResources.get("print"))};
EditorUi.prototype.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};EditorUi.prototype.createTemporaryGraph=function(b){return Graph.createOffscreenGraph(b)};EditorUi.prototype.addChromelessClickHandler=function(){var b=urlParams.highlight;null!=b&&0<b.length&&(b="#"+b);this.editor.graph.addClickHandler(b)};
@@ -2329,35 +2331,35 @@ mxGraphView.prototype.setUnit=function(b){this.unit!=b&&(this.unit=b,this.fireEv
mxImageShape.prototype.getImageDataUri=function(){var b=this.image;if("data:image/svg+xml;base64,"==b.substring(0,26)&&null!=this.style&&"1"==mxUtils.getValue(this.style,"clipSvg","0")){if(null==this.clippedSvg||this.clippedImage!=b)this.clippedSvg=Graph.clipSvgDataUri(b,!0),this.clippedImage=b;b=this.clippedSvg}return b};
Graph=function(b,c,e,k,f,p){mxGraph.call(this,b,c,e,k);this.themes=f||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=p?p:!1;b=this.baseUrl;c=b.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=b.indexOf("/",c+2),0<c&&(this.domainUrl=b.substring(0,c)),c=b.lastIndexOf("/"),0<c&&(this.domainPathUrl=b.substring(0,c+1)));this.isHtmlLabel=function(b){b=this.getCurrentCellStyle(b);
return null!=b?"1"==b.html||"wrap"==b[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var t=null,d=null,g=null,l=null,q=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){if("mouseDown"==c.getProperty("eventName")&&this.isEnabled()){var e=c.getProperty("event"),f=e.getState(),k=this.view.scale;if(!mxEvent.isAltDown(e.getEvent())&&null!=f)if(this.model.isEdge(f.cell))if(t=new mxPoint(e.getGraphX(),e.getGraphY()),q=this.isCellSelected(f.cell),g=f,d=e,null!=f.text&&null!=
-f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,e.getGraphX(),e.getGraphY()))l=mxEvent.LABEL_HANDLE;else{var m=this.selectionCellsHandler.getHandler(f.cell);null!=m&&null!=m.bends&&0<m.bends.length&&(l=m.getHandleForEvent(e))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(e.getEvent())&&(m=this.selectionCellsHandler.getHandler(f.cell),null==m||null==m.getHandleForEvent(e))){var n=new mxRectangle(e.getGraphX()-1,e.getGraphY()-1);n.grow(mxEvent.isTouchEvent(e.getEvent())?mxShape.prototype.svgStrokeTolerance-
-1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(f.cell)&&!this.isCellSelected(f.cell)){var v=this.model.getParent(f.cell),m=this.model.getParent(v);if(!this.isCellSelected(m)){var u=this.getCellGeometry(f.cell),u=null!=u.alternateBounds?u.alternateBounds:u;if(mxUtils.intersects(n,new mxRectangle(f.x,f.y-2,u.width*k,3))&&this.model.getChildAt(m,0)!=v||mxUtils.intersects(n,new mxRectangle(f.x,f.y+u.height-2,u.width,3))||mxUtils.intersects(n,new mxRectangle(f.x-2,f.y,2,u.height*k))&&
-this.model.getChildAt(v,0)!=f.cell||mxUtils.intersects(n,new mxRectangle(f.x+u.width*k-2,f.y,2,u.height*k)))v=this.selectionCellsHandler.isHandled(m),this.selectCellForEvent(m,e.getEvent()),m=this.selectionCellsHandler.getHandler(m),null!=m&&(u=m.getHandleForEvent(e),null!=u&&(m.start(e.getGraphX(),e.getGraphY(),u),m.blockDelayedSelection=!v,e.consume()))}}for(;!e.isConsumed()&&null!=f&&(this.isTableCell(f.cell)||this.isTableRow(f.cell)||this.isTable(f.cell));)this.isSwimlane(f.cell)&&(m=this.getActualStartSize(f.cell),
-(0<m.x||0<m.width)&&mxUtils.intersects(n,new mxRectangle(f.x+(m.x-m.width-1)*k+(0==m.x?f.width:0),f.y,1,f.height))||(0<m.y||0<m.height)&&mxUtils.intersects(n,new mxRectangle(f.x,f.y+(m.y-m.height-1)*k+(0==m.y?f.height:0),f.width,1)))&&(this.selectCellForEvent(f.cell,e.getEvent()),m=this.selectionCellsHandler.getHandler(f.cell),null!=m&&(u=mxEvent.CUSTOM_HANDLE-m.customHandles.length+1,m.start(e.getGraphX(),e.getGraphY(),u),e.consume())),f=this.view.getState(this.model.getParent(f.cell))}}}));this.addMouseListener({mouseDown:function(b,
-d){},mouseMove:mxUtils.bind(this,function(b,c){var e=this.selectionCellsHandler.handlers.map,f;for(f in e)if(null!=e[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(c.getEvent()))if(f=this.tolerance,null!=t&&null!=g&&null!=d){if(e=g,Math.abs(t.x-c.getGraphX())>f||Math.abs(t.y-c.getGraphY())>f){var k=this.selectionCellsHandler.getHandler(e.cell);null==k&&this.model.isEdge(e.cell)&&(k=this.createHandler(e));if(null!=k&&null!=k.bends&&0<k.bends.length){f=k.getHandleForEvent(d);
-var m=this.view.getEdgeStyle(e),n=m==mxEdgeStyle.EntityRelation;q||l!=mxEvent.LABEL_HANDLE||(f=l);if(n&&0!=f&&f!=k.bends.length-1&&f!=mxEvent.LABEL_HANDLE)!n||null==e.visibleSourceState&&null==e.visibleTargetState||(this.graphHandler.reset(),c.consume());else if(f==mxEvent.LABEL_HANDLE||0==f||null!=e.visibleSourceState||f==k.bends.length-1||null!=e.visibleTargetState)n||f==mxEvent.LABEL_HANDLE||(n=e.absolutePoints,null!=n&&(null==m&&null==f||m==mxEdgeStyle.OrthConnector)&&(f=l,null==f&&(f=new mxRectangle(t.x,
-t.y),f.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(f,n[0].x,n[0].y)?f=0:mxUtils.contains(f,n[n.length-1].x,n[n.length-1].y)?f=k.bends.length-1:null!=m&&(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)))?f=2:(f=mxUtils.findNearestSegment(e,t.x,t.y),f=null==m?mxEvent.VIRTUAL_HANDLE-f:f+1))),null==f&&(f=mxEvent.VIRTUAL_HANDLE)),k.start(c.getGraphX(),c.getGraphX(),f),c.consume(),this.graphHandler.reset()}null!=
-k&&(this.selectionCellsHandler.isHandlerActive(k)?this.isCellSelected(e.cell)||(this.selectionCellsHandler.handlers.put(e.cell,k),this.selectCellForEvent(e.cell,c.getEvent())):this.isCellSelected(e.cell)||k.destroy());q=!1;t=d=g=l=null}}else if(e=c.getState(),null!=e&&this.isCellEditable(e.cell)){k=null;if(this.model.isEdge(e.cell)){if(f=new mxRectangle(c.getGraphX(),c.getGraphY()),f.grow(mxEdgeHandler.prototype.handleImage.width/2),n=e.absolutePoints,null!=n)if(null!=e.text&&null!=e.text.boundingBox&&
-mxUtils.contains(e.text.boundingBox,c.getGraphX(),c.getGraphY()))k="move";else if(mxUtils.contains(f,n[0].x,n[0].y)||mxUtils.contains(f,n[n.length-1].x,n[n.length-1].y))k="pointer";else if(null!=e.visibleSourceState||null!=e.visibleTargetState)f=this.view.getEdgeStyle(e),k="crosshair",f!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(e)&&(f=mxUtils.findNearestSegment(e,c.getGraphX(),c.getGraphY()),f<n.length-1&&0<=f&&(k=0==Math.round(n[f].x-n[f+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(c.getEvent())){f=
-new mxRectangle(c.getGraphX()-1,c.getGraphY()-1);f.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(e.cell)&&(n=this.model.getParent(e.cell),m=this.model.getParent(n),!this.isCellSelected(m)))if(mxUtils.intersects(f,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(n,0)!=e.cell||mxUtils.intersects(f,new mxRectangle(e.x+e.width-2,e.y,2,e.height)))k="col-resize";else if(mxUtils.intersects(f,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(m,0)!=n||mxUtils.intersects(f,
-new mxRectangle(e.x,e.y+e.height-2,e.width,3)))k="row-resize";for(n=e;null==k&&null!=n&&(this.isTableCell(n.cell)||this.isTableRow(n.cell)||this.isTable(n.cell));){if(this.isSwimlane(n.cell)){var m=this.getActualStartSize(n.cell),v=this.view.scale;(0<m.x||0<m.width)&&mxUtils.intersects(f,new mxRectangle(n.x+(m.x-m.width-1)*v+(0==m.x?n.width*v:0),n.y,1,n.height))?k="col-resize":(0<m.y||0<m.height)&&mxUtils.intersects(f,new mxRectangle(n.x,n.y+(m.y-m.height-1)*v+(0==m.y?n.height:0),n.width,1))&&(k=
-"row-resize")}n=this.view.getState(this.model.getParent(n.cell))}}null!=k&&e.setCursor(k)}}),mouseUp:mxUtils.bind(this,function(b,c){l=t=d=g=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(b){var d=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);b.view.graph.isHtmlLabel(b.cell)&&(d=1!=b.style.html?mxUtils.htmlEntities(d,!1):b.view.graph.sanitizeHtml(d));return d};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(b,d){return!1};this.alternateEdgeStyle="vertical";null==k&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
-function(){var b=m.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],g=this.graph.pageFormat,c=this.graph.pageScale,e=g.width*c,g=g.height*c,c=this.graph.view.translate,f=this.graph.view.scale,l=this.graph.getPageLayout(),k=0;k<l.width;k++)d.push(new mxRectangle(((l.x+k)*e+c.x)*f,(l.y*g+c.y)*f,e*f,g*f));for(k=1;k<l.height;k++)d.push(new mxRectangle((l.x*e+c.x)*f,((l.y+k)*g+c.y)*f,e*f,g*f));b=d.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
-function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var n=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=n.apply(this,arguments),g=new mxDictionary,c=[],e=0;e<d.length;e++){var f=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&
-this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==f||g.get(f)||(g.put(f,!0),c.push(f))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,g,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));
-u.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var v=new mxRubberband(this);this.getRubberband=function(){return v};var y=(new Date).getTime(),x=0,F=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;F.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var H=
-this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&H.apply(this,arguments)};var z=this.isToggleEvent;this.isToggleEvent=function(b){return z.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var D=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return D.apply(this,
-arguments)&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var N=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(N=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,
-mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=N)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var E=this.click;this.click=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);if(this.isEnabled()&&!d||b.isConsumed())return E.apply(this,arguments);var g=d?b.sourceState.cell:b.getCell();null!=g&&(g=this.getClickableLinkForCell(g),null!=g&&(this.isCustomLink(g)?
-this.customLinkClicked(g):this.openLink(g)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var J=this.tooltipHandler.show;this.tooltipHandler.show=function(){J.apply(this,arguments);if(null!=this.div)for(var b=this.div.getElementsByTagName("a"),d=0;d<b.length;d++)null!=b[d].getAttribute("href")&&null==b[d].getAttribute("target")&&b[d].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};
-this.getCursorForMouseEvent=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);return this.getCursorForCell(d?b.sourceState.cell:b.getCell())};var C=this.getCursorForCell;this.getCursorForCell=function(b){if(!this.isEnabled()||this.isCellLocked(b)){if(null!=this.getClickableLinkForCell(b))return"pointer";if(this.isCellLocked(b))return"default"}return C.apply(this,arguments)};this.selectRegion=function(b,d){var g=mxEvent.isAltDown(d)?b:null,g=this.getCells(b.x,
-b.y,b.width,b.height,null,null,g,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var c=0;c<g.length;c++)this.selectCellForEvent(g[c],d);else this.selectCellsForEvent(g,d);return g};var K=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,g){return this.graph.isCellSelected(b)?!1:K.apply(this,arguments)};this.isCellLocked=function(b){for(;null!=b;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(b),
-"locked","0"))return!0;b=this.model.getParent(b)}return!1};var M=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var g=d.getProperty("event").getState();M=null==g||this.isSelectionEmpty()||this.isCellSelected(g.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var g=d.getProperty("event"),c=d.getProperty("cell");null==c?(g=mxUtils.convertPoint(this.container,
-mxEvent.getClientX(g),mxEvent.getClientY(g)),v.start(g.x,g.y)):null!=M?this.addSelectionCells(M):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);M=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var g=b.view.graph;return d&&(g.isCellSelected(b.cell)||g.isTableRow(b.cell)&&g.selectionCellsHandler.isHandled(g.model.getParent(b.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,
-mxUtils.bind(this,function(){var b=this.connectionHandler.constraintHandler;null!=b.currentFocus&&b.isStateIgnored(b.currentFocus,!0)&&(b.currentFocus=null,b.constraints=null,b.destroyIcons());b.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var Z=this.updateMouseEvent;this.updateMouseEvent=function(b){b=Z.apply(this,arguments);null!=b.state&&this.isCellLocked(b.getCell())&&(b.state=null);return b}}this.currentTranslate=new mxPoint(0,0)};
-Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.translateDiagram="1"==urlParams["translate-diagram"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;
-Graph.defaultJumpSize=6;Graph.zoomWheel=!1;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.xmlDeclaration='<?xml version="1.0" encoding="UTF-8"?>';Graph.svgDoctype='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';Graph.svgFileComment="\x3c!-- Do not edit this file with editors other than diagrams.net --\x3e";
-Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
+f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,e.getGraphX(),e.getGraphY()))l=mxEvent.LABEL_HANDLE;else{var m=this.selectionCellsHandler.getHandler(f.cell);null!=m&&null!=m.bends&&0<m.bends.length&&(l=m.getHandleForEvent(e))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(e.getEvent())&&(m=this.selectionCellsHandler.getHandler(f.cell),null==m||null==m.getHandleForEvent(e))){var n=new mxRectangle(e.getGraphX()-1,e.getGraphY()-1),m=mxEvent.isTouchEvent(e.getEvent())?mxShape.prototype.svgStrokeTolerance-
+1:(mxShape.prototype.svgStrokeTolerance+1)/2;n.grow(m);if(this.isTableCell(f.cell)&&!this.isCellSelected(f.cell)&&!(mxUtils.contains(f,e.getGraphX()-m,e.getGraphY()-m)&&mxUtils.contains(f,e.getGraphX()-m,e.getGraphY()+m)&&mxUtils.contains(f,e.getGraphX()+m,e.getGraphY()+m)&&mxUtils.contains(f,e.getGraphX()+m,e.getGraphY()-m))){var v=this.model.getParent(f.cell),m=this.model.getParent(v);if(!this.isCellSelected(m)){var u=this.getCellGeometry(f.cell),u=null!=u.alternateBounds?u.alternateBounds:u;if(mxUtils.intersects(n,
+new mxRectangle(f.x,f.y-2,u.width*k,3))&&this.model.getChildAt(m,0)!=v||mxUtils.intersects(n,new mxRectangle(f.x,f.y+u.height-2,u.width,3))||mxUtils.intersects(n,new mxRectangle(f.x-2,f.y,2,u.height*k))&&this.model.getChildAt(v,0)!=f.cell||mxUtils.intersects(n,new mxRectangle(f.x+u.width*k-2,f.y,2,u.height*k)))v=this.selectionCellsHandler.isHandled(m),this.selectCellForEvent(m,e.getEvent()),m=this.selectionCellsHandler.getHandler(m),null!=m&&(u=m.getHandleForEvent(e),null!=u&&(m.start(e.getGraphX(),
+e.getGraphY(),u),m.blockDelayedSelection=!v,e.consume()))}}for(;!e.isConsumed()&&null!=f&&(this.isTableCell(f.cell)||this.isTableRow(f.cell)||this.isTable(f.cell));)this.isSwimlane(f.cell)&&(m=this.getActualStartSize(f.cell),(0<m.x||0<m.width)&&mxUtils.intersects(n,new mxRectangle(f.x+(m.x-m.width-1)*k+(0==m.x?f.width:0),f.y,1,f.height))||(0<m.y||0<m.height)&&mxUtils.intersects(n,new mxRectangle(f.x,f.y+(m.y-m.height-1)*k+(0==m.y?f.height:0),f.width,1)))&&(this.selectCellForEvent(f.cell,e.getEvent()),
+m=this.selectionCellsHandler.getHandler(f.cell),null!=m&&(u=mxEvent.CUSTOM_HANDLE-m.customHandles.length+1,m.start(e.getGraphX(),e.getGraphY(),u),e.consume())),f=this.view.getState(this.model.getParent(f.cell))}}}));this.addMouseListener({mouseDown:function(b,d){},mouseMove:mxUtils.bind(this,function(b,c){var e=this.selectionCellsHandler.handlers.map,f;for(f in e)if(null!=e[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(c.getEvent())){var k=this.tolerance;
+if(null!=t&&null!=g&&null!=d){if(e=g,Math.abs(t.x-c.getGraphX())>k||Math.abs(t.y-c.getGraphY())>k){var m=this.selectionCellsHandler.getHandler(e.cell);null==m&&this.model.isEdge(e.cell)&&(m=this.createHandler(e));if(null!=m&&null!=m.bends&&0<m.bends.length){f=m.getHandleForEvent(d);var n=this.view.getEdgeStyle(e),k=n==mxEdgeStyle.EntityRelation;q||l!=mxEvent.LABEL_HANDLE||(f=l);if(k&&0!=f&&f!=m.bends.length-1&&f!=mxEvent.LABEL_HANDLE)!k||null==e.visibleSourceState&&null==e.visibleTargetState||(this.graphHandler.reset(),
+c.consume());else if(f==mxEvent.LABEL_HANDLE||0==f||null!=e.visibleSourceState||f==m.bends.length-1||null!=e.visibleTargetState)k||f==mxEvent.LABEL_HANDLE||(k=e.absolutePoints,null!=k&&(null==n&&null==f||n==mxEdgeStyle.OrthConnector)&&(f=l,null==f&&(f=new mxRectangle(t.x,t.y),f.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(f,k[0].x,k[0].y)?f=0:mxUtils.contains(f,k[k.length-1].x,k[k.length-1].y)?f=m.bends.length-1:null!=n&&(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)))?f=2:(f=mxUtils.findNearestSegment(e,t.x,t.y),f=null==n?mxEvent.VIRTUAL_HANDLE-f:f+1))),null==f&&(f=mxEvent.VIRTUAL_HANDLE)),m.start(c.getGraphX(),c.getGraphX(),f),c.consume(),this.graphHandler.reset()}null!=m&&(this.selectionCellsHandler.isHandlerActive(m)?this.isCellSelected(e.cell)||(this.selectionCellsHandler.handlers.put(e.cell,m),this.selectCellForEvent(e.cell,c.getEvent())):this.isCellSelected(e.cell)||
+m.destroy());q=!1;t=d=g=l=null}}else if(e=c.getState(),null!=e&&this.isCellEditable(e.cell)){m=null;if(this.model.isEdge(e.cell)){if(f=new mxRectangle(c.getGraphX(),c.getGraphY()),f.grow(mxEdgeHandler.prototype.handleImage.width/2),k=e.absolutePoints,null!=k)if(null!=e.text&&null!=e.text.boundingBox&&mxUtils.contains(e.text.boundingBox,c.getGraphX(),c.getGraphY()))m="move";else if(mxUtils.contains(f,k[0].x,k[0].y)||mxUtils.contains(f,k[k.length-1].x,k[k.length-1].y))m="pointer";else if(null!=e.visibleSourceState||
+null!=e.visibleTargetState)f=this.view.getEdgeStyle(e),m="crosshair",f!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(e)&&(f=mxUtils.findNearestSegment(e,c.getGraphX(),c.getGraphY()),f<k.length-1&&0<=f&&(m=0==Math.round(k[f].x-k[f+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(c.getEvent())){k=mxShape.prototype.svgStrokeTolerance/2;f=new mxRectangle(c.getGraphX()-1,c.getGraphY()-1);f.grow(k);if(this.isTableCell(e.cell)&&(k=this.model.getParent(e.cell),n=this.model.getParent(k),!this.isCellSelected(n)))if(mxUtils.intersects(f,
+new mxRectangle(e.x-2,e.y,4,e.height))&&this.model.getChildAt(k,0)!=e.cell||mxUtils.intersects(f,new mxRectangle(e.x+e.width-2,e.y,4,e.height)))m="col-resize";else if(mxUtils.intersects(f,new mxRectangle(e.x,e.y-2,e.width,4))&&this.model.getChildAt(n,0)!=k||mxUtils.intersects(f,new mxRectangle(e.x,e.y+e.height-2,e.width,4)))m="row-resize";for(k=e;null==m&&null!=k&&(this.isTableCell(k.cell)||this.isTableRow(k.cell)||this.isTable(k.cell));){if(this.isSwimlane(k.cell)){var n=this.getActualStartSize(k.cell),
+v=this.view.scale;(0<n.x||0<n.width)&&mxUtils.intersects(f,new mxRectangle(k.x+(n.x-n.width-1)*v+(0==n.x?k.width*v:0),k.y,1,k.height))?m="col-resize":(0<n.y||0<n.height)&&mxUtils.intersects(f,new mxRectangle(k.x,k.y+(n.y-n.height-1)*v+(0==n.y?k.height:0),k.width,1))&&(m="row-resize")}k=this.view.getState(this.model.getParent(k.cell))}}null!=m&&e.setCursor(m)}}}),mouseUp:mxUtils.bind(this,function(b,c){l=t=d=g=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(b){var d=
+mxCellRenderer.prototype.getLabelValue.apply(this,arguments);b.view.graph.isHtmlLabel(b.cell)&&(d=1!=b.style.html?mxUtils.htmlEntities(d,!1):b.view.graph.sanitizeHtml(d));return d};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(b,d){return!1};this.alternateEdgeStyle="vertical";null==k&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var b=m.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],g=this.graph.pageFormat,c=this.graph.pageScale,e=g.width*c,g=g.height*c,c=this.graph.view.translate,f=this.graph.view.scale,l=this.graph.getPageLayout(),
+k=0;k<l.width;k++)d.push(new mxRectangle(((l.x+k)*e+c.x)*f,(l.y*g+c.y)*f,e*f,g*f));for(k=1;k<l.height;k++)d.push(new mxRectangle((l.x*e+c.x)*f,((l.y+k)*g+c.y)*f,e*f,g*f));b=d.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;
+return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var n=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=n.apply(this,arguments),g=new mxDictionary,c=[],e=0;e<d.length;e++){var f=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==f||g.get(f)||(g.put(f,
+!0),c.push(f))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,g,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));u.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var v=new mxRubberband(this);
+this.getRubberband=function(){return v};var y=(new Date).getTime(),x=0,F=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;F.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var H=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
+"outlineConnect","1"))&&H.apply(this,arguments)};var z=this.isToggleEvent;this.isToggleEvent=function(b){return z.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var D=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return D.apply(this,arguments)&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&
+mxEvent.isTouchEvent(b.getEvent())};var N=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(N=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=N)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var E=this.click;this.click=
+function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);if(this.isEnabled()&&!d||b.isConsumed())return E.apply(this,arguments);var g=d?b.sourceState.cell:b.getCell();null!=g&&(g=this.getClickableLinkForCell(g),null!=g&&(this.isCustomLink(g)?this.customLinkClicked(g):this.openLink(g)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var J=this.tooltipHandler.show;this.tooltipHandler.show=function(){J.apply(this,
+arguments);if(null!=this.div)for(var b=this.div.getElementsByTagName("a"),d=0;d<b.length;d++)null!=b[d].getAttribute("href")&&null==b[d].getAttribute("target")&&b[d].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};this.getCursorForMouseEvent=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);return this.getCursorForCell(d?b.sourceState.cell:b.getCell())};var C=this.getCursorForCell;this.getCursorForCell=
+function(b){if(!this.isEnabled()||this.isCellLocked(b)){if(null!=this.getClickableLinkForCell(b))return"pointer";if(this.isCellLocked(b))return"default"}return C.apply(this,arguments)};this.selectRegion=function(b,d){var g=mxEvent.isAltDown(d)?b:null,g=this.getCells(b.x,b.y,b.width,b.height,null,null,g,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var c=0;c<g.length;c++)this.selectCellForEvent(g[c],d);else this.selectCellsForEvent(g,d);return g};var K=
+this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,g){return this.graph.isCellSelected(b)?!1:K.apply(this,arguments)};this.isCellLocked=function(b){for(;null!=b;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(b),"locked","0"))return!0;b=this.model.getParent(b)}return!1};var L=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var g=d.getProperty("event").getState();L=null==
+g||this.isSelectionEmpty()||this.isCellSelected(g.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var g=d.getProperty("event"),c=d.getProperty("cell");null==c?(g=mxUtils.convertPoint(this.container,mxEvent.getClientX(g),mxEvent.getClientY(g)),v.start(g.x,g.y)):null!=L?this.addSelectionCells(L):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);L=null;d.consume()}}));this.connectionHandler.selectCells=
+function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var g=b.view.graph;return d&&(g.isCellSelected(b.cell)||g.isTableRow(b.cell)&&g.selectionCellsHandler.isHandled(g.model.getParent(b.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var b=this.connectionHandler.constraintHandler;null!=b.currentFocus&&b.isStateIgnored(b.currentFocus,!0)&&(b.currentFocus=null,b.constraints=null,b.destroyIcons());b.destroyFocusHighlight()}));
+Graph.touchStyle&&this.initTouch();var Z=this.updateMouseEvent;this.updateMouseEvent=function(b){b=Z.apply(this,arguments);null!=b.state&&this.isCellLocked(b.getCell())&&(b.state=null);return b}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;
+Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.translateDiagram="1"==urlParams["translate-diagram"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;Graph.zoomWheel=!1;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";
+Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.xmlDeclaration='<?xml version="1.0" encoding="UTF-8"?>';Graph.svgDoctype='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';Graph.svgFileComment="\x3c!-- Do not edit this file with editors other than diagrams.net --\x3e";Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
Graph.createOffscreenGraph=function(b){var c=new Graph(document.createElement("div"));c.stylesheet.styles=mxUtils.clone(b.styles);c.resetViewOnRootChange=!1;c.setConnectable(!1);c.gridEnabled=!1;c.autoScroll=!1;c.setTooltips(!1);c.setEnabled(!1);c.container.style.visibility="hidden";c.container.style.position="absolute";c.container.style.overflow="hidden";c.container.style.height="1px";c.container.style.width="1px";return c};
Graph.createSvgImage=function(b,c,e,k,f){e=unescape(encodeURIComponent(Graph.svgDoctype+'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+b+'px" height="'+c+'px" '+(null!=k&&null!=f?'viewBox="0 0 '+k+" "+f+'" ':"")+'version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),b,c)};
Graph.zapGremlins=function(b){for(var c=0,e=[],k=0;k<b.length;k++){var f=b.charCodeAt(k);(32<=f||9==f||10==f||13==f)&&65535!=f&&65534!=f||(e.push(b.substring(c,k)),c=k+1)}0<c&&c<b.length&&e.push(b.substring(c));return 0==e.length?b:e.join("")};Graph.stringToBytes=function(b){for(var c=Array(b.length),e=0;e<b.length;e++)c[e]=b.charCodeAt(e);return c};Graph.bytesToString=function(b){for(var c=Array(b.length),e=0;e<b.length;e++)c[e]=String.fromCharCode(b[e]);return c.join("")};
@@ -2494,15 +2496,16 @@ HoverIcons.prototype.update=function(b,c,e){if(!this.graph.connectionArrowsEnabl
this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=b,this.update(b,c,e))}),this.updateDelay+10))):null!=this.startTime&&(k=(new Date).getTime()-this.startTime);this.setDisplay("");null!=this.currentState&&this.currentState!=b&&k<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,c,e)?this.reset(!1):(null!=this.currentState||k>this.activationDelay)&&this.currentState!=b&&(k>this.updateDelay&&null!=b||null==this.bbox||null==c||null==e||!mxUtils.contains(this.bbox,
c,e))&&(null!=b&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(b),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=b&&this.graph.connectionHandler.constraintHandler.reset()):this.reset())}};
HoverIcons.prototype.setCurrentState=function(b){"eastwest"!=b.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=b};Graph.prototype.createParent=function(b,c,e,k,f){b=this.cloneCell(b);for(var p=0;p<e;p++){var t=this.cloneCell(c),d=this.getCellGeometry(t);null!=d&&(d.x+=p*k,d.y+=p*f);b.insert(t)}return b};
-Graph.prototype.createTable=function(b,c,e,k,f,p,t,d,g){e=null!=e?e:60;k=null!=k?k:40;p=null!=p?p:30;d=null!=d?d:"shape=partialRectangle;collapsible=0;dropTarget=0;pointerEvents=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";g=null!=g?g:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;";return this.createParent(this.createVertex(null,null,null!=f?f:"",0,0,c*e,
-b*k+(null!=f?p:0),null!=t?t:"shape=table;startSize="+(null!=f?p:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,c*e,k,d),this.createVertex(null,null,"",0,0,e,k,g),c,e,0),b,0,k)};Graph.prototype.setTableValues=function(b,c,e){for(var k=this.model.getChildCells(b,!0),f=0;f<k.length;f++)if(null!=e&&(k[f].value=e[f]),null!=c)for(var p=this.model.getChildCells(k[f],!0),t=0;t<p.length;t++)null!=c[f][t]&&(p[t].value=c[f][t]);return b};
-Graph.prototype.createCrossFunctionalSwimlane=function(b,c,e,k,f,p,t,d,g){e=null!=e?e:120;k=null!=k?k:120;var l=null==f?0:40;t=null!=t?t:"swimlane;horizontal=0;fontStyle=0;points=[[0,0.5],[1,0.5]];fillColor=none;strokeColor=none;portConstraint=eastwest;startSize="+l+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";d=null!=d?d:"swimlane;fontStyle=0;connectable=0;fillColor=none;startSize=40;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";g=null!=g?g:"swimlane;fontStyle=0;connectable=0;fillColor=none;startSize="+
-(null==f?"40":"0")+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";f=this.createVertex(null,null,null!=f?f:"",0,0,c*e,b*k,null!=p?p:"shape=table;childLayout=tableLayout;startSize="+l+";"+(null==f?"fillColor=none;":"")+"collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;");p=mxUtils.getValue(this.getCellStyle(f),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);f.geometry.width+=p;f.geometry.height+=p;t=this.createVertex(null,null,"",0,p,c*e+p,k,t);f.insert(this.createParent(t,
-this.createVertex(null,null,"",p,0,e,k,d),c,e,0));return 1<b?(t.geometry.y=k+p,this.createParent(f,this.createParent(t,this.createVertex(null,null,"",p,0,e,k,g),c,e,0),b-1,0,k)):f};
-Graph.prototype.visitTableCells=function(b,c){for(var e=null,k=this.model.getChildCells(b,!0),f=this.getActualStartSize(b,!0),p=0;p<k.length;p++){for(var t=this.getActualStartSize(k[p],!0),d=this.model.getChildCells(k[p],!0),g=null,l=[],q=0;q<d.length;q++){var m=this.getCellGeometry(d[q]),n={cell:d[q],rospan:1,colspan:1,row:p,col:q,geo:m},m=null!=m.alternateBounds?m.alternateBounds:m;n.point=new mxPoint(m.width+(null!=g?g.point.x:f.x+t.x),m.height+(null!=e&&null!=e[0]?e[0].point.y:f.y+t.y));n.actual=
-n;null!=e&&null!=e[q]&&1<e[q].rowspan?(n.rowspan=e[q].rowspan-1,n.colspan=e[q].colspan,n.actual=e[q].actual):null!=g&&1<g.colspan?(n.rowspan=g.rowspan,n.colspan=g.colspan-1,n.actual=g.actual):(g=this.getCurrentCellStyle(d[q],!0),null!=g&&(n.rowspan=parseInt(g.rowspan||1),n.colspan=parseInt(g.colspan||1)));c(n,d.length,k.length,f.x+t.x,f.y+t.y);l.push(n);g=n}e=l}};
-Graph.prototype.getTableLines=function(b,c,e){var k=[],f=[];(c||e)&&this.visitTableCells(b,mxUtils.bind(this,function(b,t,d,g,l){c&&b.row<d-1&&(null==k[b.row]&&(k[b.row]=[new mxPoint(g,b.point.y)]),1<b.rowspan&&k[b.row].push(null),k[b.row].push(b.point));e&&b.col<t-1&&(null==f[b.col]&&(f[b.col]=[new mxPoint(b.point.x,l)]),1<b.colspan&&f[b.col].push(null),f[b.col].push(b.point))}));return k.concat(f)};Graph.prototype.isTableCell=function(b){return this.model.isVertex(b)&&this.isTableRow(this.model.getParent(b))};
-Graph.prototype.isTableRow=function(b){return this.model.isVertex(b)&&this.isTable(this.model.getParent(b))};Graph.prototype.isTable=function(b){b=this.getCellStyle(b);return null!=b&&"tableLayout"==b.childLayout};Graph.prototype.isStack=function(b){b=this.getCellStyle(b);return null!=b&&"stackLayout"==b.childLayout};Graph.prototype.isStackChild=function(b){return this.model.isVertex(b)&&this.isStack(this.model.getParent(b))};
+Graph.prototype.createTable=function(b,c,e,k,f,p,t,d,g){e=null!=e?e:60;k=null!=k?k:40;p=null!=p?p:30;d=null!=d?d:"shape=partialRectangle;collapsible=0;dropTarget=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";g=null!=g?g:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;";return this.createParent(this.createVertex(null,null,null!=f?f:"",0,0,c*e,b*k+(null!=f?p:
+0),null!=t?t:"shape=table;startSize="+(null!=f?p:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,c*e,k,d),this.createVertex(null,null,"",0,0,e,k,g),c,e,0),b,0,k)};Graph.prototype.setTableValues=function(b,c,e){for(var k=this.model.getChildCells(b,!0),f=0;f<k.length;f++)if(null!=e&&(k[f].value=e[f]),null!=c)for(var p=this.model.getChildCells(k[f],!0),t=0;t<p.length;t++)null!=c[f][t]&&(p[t].value=c[f][t]);return b};
+Graph.prototype.createCrossFunctionalSwimlane=function(b,c,e,k,f,p,t,d,g){e=null!=e?e:120;k=null!=k?k:120;t=null!=t?t:"swimlane;horizontal=0;swimlaneHead=0;swimlaneBody=0;fontStyle=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize=40;collapsible=0;recursiveResize=0;expand=0;";d=null!=d?d:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=40;collapsible=0;recursiveResize=0;expand=0;";g=null!=g?g:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=0;collapsible=0;recursiveResize=0;expand=0;";
+f=this.createVertex(null,null,null!=f?f:"",0,0,c*e,b*k,null!=p?p:"shape=table;childLayout=tableLayout;"+(null==f?"startSize=0;fillColor=none;":"startSize=40;")+"collapsible=0;recursiveResize=0;expand=0;");p=mxUtils.getValue(this.getCellStyle(f),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);f.geometry.width+=p;f.geometry.height+=p;t=this.createVertex(null,null,"",0,p,c*e+p,k,t);f.insert(this.createParent(t,this.createVertex(null,null,"",p,0,e,k,d),c,e,0));return 1<b?(t.geometry.y=k+p,
+this.createParent(f,this.createParent(t,this.createVertex(null,null,"",p,0,e,k,g),c,e,0),b-1,0,k)):f};
+Graph.prototype.visitTableCells=function(b,c){for(var e=null,k=this.model.getChildCells(b,!0),f=this.getActualStartSize(b,!0),p=0;p<k.length;p++){for(var t=this.getActualStartSize(k[p],!0),d=this.model.getChildCells(k[p],!0),g=this.getCellStyle(k[p],!0),l=null,q=[],m=0;m<d.length;m++){var n=this.getCellGeometry(d[m]),u={cell:d[m],rospan:1,colspan:1,row:p,col:m,geo:n},n=null!=n.alternateBounds?n.alternateBounds:n;u.point=new mxPoint(n.width+(null!=l?l.point.x:f.x+t.x),n.height+(null!=e&&null!=e[0]?
+e[0].point.y:f.y+t.y));u.actual=u;null!=e&&null!=e[m]&&1<e[m].rowspan?(u.rowspan=e[m].rowspan-1,u.colspan=e[m].colspan,u.actual=e[m].actual):null!=l&&1<l.colspan?(u.rowspan=l.rowspan,u.colspan=l.colspan-1,u.actual=l.actual):(l=this.getCurrentCellStyle(d[m],!0),null!=l&&(u.rowspan=parseInt(l.rowspan||1),u.colspan=parseInt(l.colspan||1)));l=1==mxUtils.getValue(g,mxConstants.STYLE_SWIMLANE_HEAD,1)&&mxUtils.getValue(g,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE;c(u,d.length,k.length,
+f.x+(l?t.x:0),f.y+(l?t.y:0));q.push(u);l=u}e=q}};Graph.prototype.getTableLines=function(b,c,e){var k=[],f=[];(c||e)&&this.visitTableCells(b,mxUtils.bind(this,function(b,t,d,g,l){c&&b.row<d-1&&(null==k[b.row]&&(k[b.row]=[new mxPoint(g,b.point.y)]),1<b.rowspan&&k[b.row].push(null),k[b.row].push(b.point));e&&b.col<t-1&&(null==f[b.col]&&(f[b.col]=[new mxPoint(b.point.x,l)]),1<b.colspan&&f[b.col].push(null),f[b.col].push(b.point))}));return k.concat(f)};
+Graph.prototype.isTableCell=function(b){return this.model.isVertex(b)&&this.isTableRow(this.model.getParent(b))};Graph.prototype.isTableRow=function(b){return this.model.isVertex(b)&&this.isTable(this.model.getParent(b))};Graph.prototype.isTable=function(b){b=this.getCellStyle(b);return null!=b&&"tableLayout"==b.childLayout};Graph.prototype.isStack=function(b){b=this.getCellStyle(b);return null!=b&&"stackLayout"==b.childLayout};
+Graph.prototype.isStackChild=function(b){return this.model.isVertex(b)&&this.isStack(this.model.getParent(b))};
Graph.prototype.setTableRowHeight=function(b,c,e){e=null!=e?e:!0;var k=this.getModel();k.beginUpdate();try{var f=this.getCellGeometry(b);if(null!=f){f=f.clone();f.height+=c;k.setGeometry(b,f);var p=k.getParent(b),t=k.getChildCells(p,!0);if(!e){var d=mxUtils.indexOf(t,b);if(d<t.length-1){var g=t[d+1],l=this.getCellGeometry(g);null!=l&&(l=l.clone(),l.y+=c,l.height-=c,k.setGeometry(g,l))}}var q=this.getCellGeometry(p);null!=q&&(e||(e=b==t[t.length-1]),e&&(q=q.clone(),q.height+=c,k.setGeometry(p,q)))}}finally{k.endUpdate()}};
Graph.prototype.setTableColumnWidth=function(b,c,e){e=null!=e?e:!1;var k=this.getModel(),f=k.getParent(b),p=k.getParent(f),t=k.getChildCells(f,!0);b=mxUtils.indexOf(t,b);var d=b==t.length-1;k.beginUpdate();try{for(var g=k.getChildCells(p,!0),l=0;l<g.length;l++){var f=g[l],t=k.getChildCells(f,!0),q=t[b],m=this.getCellGeometry(q);null!=m&&(m=m.clone(),m.width+=c,null!=m.alternateBounds&&(m.alternateBounds.width+=c),k.setGeometry(q,m));b<t.length-1&&(q=t[b+1],m=this.getCellGeometry(q),null!=m&&(m=m.clone(),
m.x+=c,e||(m.width-=c,null!=m.alternateBounds&&(m.alternateBounds.width-=c)),k.setGeometry(q,m)))}if(d||e){var n=this.getCellGeometry(p);null!=n&&(n=n.clone(),n.width+=c,k.setGeometry(p,n))}}finally{k.endUpdate()}};function TableLayout(b){mxGraphLayout.call(this,b)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};TableLayout.prototype.isVertexIgnored=function(b){return!this.graph.getModel().isVertex(b)||!this.graph.isCellVisible(b)};
@@ -2523,8 +2526,8 @@ p[E].y)||g}t=d[d.length-1];g=e(0,t.x,t.y)||g}b.routedPoints=c;return g}return!1}
"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,f=mxUtils.getValue(this.style,"jumpStyle","none"),l=!0,k=null,q=null,m=[],n=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var E=this.state.routedPoints[t],J=new mxPoint(E.x/this.scale,E.y/this.scale);0==t?J=d[0]:t==this.state.routedPoints.length-1&&(J=d[d.length-1]);var C=!1;if(null!=k&&1==E.type){var K=this.state.routedPoints[t+1],E=K.x/this.scale-J.x,K=K.y/this.scale-J.y,E=E*E+K*K;null==n&&(n=new mxPoint(J.x-k.x,J.y-k.y),
q=Math.sqrt(n.x*n.x+n.y*n.y),0<q?(n.x=n.x*e/q,n.y=n.y*e/q):n=null);E>e*e&&0<q&&(E=k.x-J.x,K=k.y-J.y,E=E*E+K*K,E>e*e&&(C=new mxPoint(J.x-n.x,J.y-n.y),E=new mxPoint(J.x+n.x,J.y+n.y),m.push(C),this.addPoints(b,m,g,c,!1,null,l),m=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,l=!1,"sharp"==f?(b.lineTo(C.x-n.y*m,C.y+n.x*m),b.lineTo(E.x-n.y*m,E.y+n.x*m),b.lineTo(E.x,E.y)):"line"==f?(b.moveTo(C.x+n.y*m,C.y-n.x*m),b.lineTo(C.x-n.y*m,C.y+n.x*m),b.moveTo(E.x-n.y*m,E.y+n.x*m),b.lineTo(E.x+n.y*
m,E.y-n.x*m),b.moveTo(E.x,E.y)):"arc"==f?(m*=1.3,b.curveTo(C.x-n.y*m,C.y+n.x*m,E.x-n.y*m,E.y+n.x*m,E.x,E.y)):(b.moveTo(E.x,E.y),l=!0),m=[E],C=!0))}else n=null;C||(m.push(J),k=J)}this.addPoints(b,m,g,c,!1,null,l);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,g,c){return null!=d&&"centerPerimeter"==d.style[mxConstants.STYLE_PERIMETER]?new mxPoint(d.getCenterX(),d.getCenterY()):t.apply(this,arguments)};var d=mxGraphView.prototype.updateFloatingTerminalPoint;
-mxGraphView.prototype.updateFloatingTerminalPoint=function(b,g,c,e){if(null==g||null==b||"1"!=g.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{g=this.getTerminalPort(b,g,e);var f=this.getNextPoint(b,c,e),l=this.graph.isOrthogonal(b),k=mxUtils.toRadians(Number(g.style[mxConstants.STYLE_ROTATION]||"0")),q=new mxPoint(g.getCenterX(),g.getCenterY());if(0!=k)var m=Math.cos(-k),n=Math.sin(-k),f=mxUtils.getRotatedPoint(f,m,n,q);m=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
-0);m+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);f=this.getPerimeterPoint(g,f,0==k&&l,m);0!=k&&(m=Math.cos(k),n=Math.sin(k),f=mxUtils.getRotatedPoint(f,m,n,q));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,g,c,e,f),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,g,c,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);c=g=null;if(null!=b)for(var f=0;f<b.length;f++){var l=this.graph.getConnectionPoint(d,
+mxGraphView.prototype.updateFloatingTerminalPoint=function(b,g,c,e){if(null==g||null==b||"1"!=g.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{g=this.getTerminalPort(b,g,e);var f=this.getNextPoint(b,c,e),l=this.graph.isOrthogonal(b),k=mxUtils.toRadians(Number(g.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(g.getCenterX(),g.getCenterY());if(0!=k)var q=Math.cos(-k),n=Math.sin(-k),f=mxUtils.getRotatedPoint(f,q,n,m);q=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
+0);q+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);f=this.getPerimeterPoint(g,f,0==k&&l,q);0!=k&&(q=Math.cos(k),n=Math.sin(k),f=mxUtils.getRotatedPoint(f,q,n,m));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,g,c,e,f),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,g,c,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);c=g=null;if(null!=b)for(var f=0;f<b.length;f++){var l=this.graph.getConnectionPoint(d,
b[f]);if(null!=l){var k=(l.x-e.x)*(l.x-e.x)+(l.y-e.y)*(l.y-e.y);if(null==c||k<c)g=l,c=k}}null!=g&&(e=g)}return e};var g=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(b,d,c){var e=g.apply(this,arguments);"1"==b.getAttribute("placeholders")&&null!=c.state&&(e=c.state.view.graph.replacePlaceholders(c.state.cell,e));return e};var l=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(b){if(null!=b.style&&"undefined"!==typeof pako){var d=
mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"string"===typeof d&&"stencil("==d.substring(0,8))try{var g=d.substring(8,d.length-1),c=mxUtils.parseXml(Graph.decompress(g));return new mxShape(new mxStencil(c.documentElement))}catch(v){null!=window.console&&console.log("Error in shape: "+v)}}return l.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.filesLoaded={};
@@ -2546,16 +2549,16 @@ function(){for(var b="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",
Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var b=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=b&&(new mxCodec(b.ownerDocument)).decode(b,this.getStylesheet())};Graph.prototype.createCellLookup=function(b,d){d=null!=d?d:{};for(var g=0;g<b.length;g++){var c=b[g];d[mxObjectIdentity.get(c)]=c.getId();for(var e=this.model.getChildCount(c),
f=0;f<e;f++)this.createCellLookup([this.model.getChildAt(c,f)],d)}return d};Graph.prototype.createCellMapping=function(b,d,g){g=null!=g?g:{};for(var c in b){var e=d[c];null==g[e]&&(g[e]=b[c].getId()||"")}return g};Graph.prototype.importGraphModel=function(b,d,g,c){d=null!=d?d:0;g=null!=g?g:0;var e=new mxCodec(b.ownerDocument),f=new mxGraphModel;e.decode(b,f);b=[];var e={},l={},k=f.getChildren(this.cloneCell(f.root,this.isCloneInvalidEdges(),e));if(null!=k){var q=this.createCellLookup([f.root]),k=
k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(f=0;f<k.length;f++)m=this.model.getChildren(this.moveCells([k[f]],d,g,!1,this.model.getRoot())[0]),null!=m&&(b=b.concat(m));else{var m=f.getChildren(k[0]);null!=m&&(b=this.moveCells(m,d,g,!1,this.getDefaultParent()),l[f.getChildAt(f.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,q,l),this.updateCustomLinks(l,b),c)){this.isGridEnabled()&&(d=this.snap(d),g=this.snap(g));
-var n=this.getBoundingBoxFromGeometry(b,!0);null!=n&&this.moveCells(b,d-n.x,g-n.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},g=this.cloneCells(b,null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],!0);for(var f=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<g.length;e++){l.add(k,g[e]);var q=this.view.getState(b[e]);if(null!=q){var m=this.getCellGeometry(g[e]);null!=m&&m.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&
-(m.offset=null,m.relative=!1,m.x=q.x/q.view.scale-q.view.translate.x,m.y=q.y/q.view.scale-q.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),g);return f.encode(l)};Graph.prototype.isSwimlane=function(b,d){if(null!=b&&this.model.getParent(b)!=this.model.getRoot()&&!this.model.isEdge(b)){var g=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE];return g==mxConstants.SHAPE_SWIMLANE||"table"==g}return!1};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=
-function(b){var g=this.model.getParent(b);if(null!=g){var c=this.getCurrentCellStyle(g);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==g||!this.isTable(g))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,e,f,l,k,q){null==q&&(q=this.model.getParent(b),this.isTable(q)||this.isTableRow(q))&&(q=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[b,d,c,e,f,l,k,q]);this.model.setValue(c,"");var m=this.getChildCells(c,
-!0);for(d=0;d<m.length;d++){var n=this.getCellGeometry(m[d]);null!=n&&n.relative&&0<n.x&&this.model.remove(m[d])}var G=this.getChildCells(b,!0);for(d=0;d<G.length;d++)n=this.getCellGeometry(G[d]),null!=n&&n.relative&&0>=n.x&&this.model.remove(G[d]);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,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
+var n=this.getBoundingBoxFromGeometry(b,!0);null!=n&&this.moveCells(b,d-n.x,g-n.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},g=this.cloneCells(b,null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],!0);for(var f=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<g.length;e++){l.add(k,g[e]);var m=this.view.getState(b[e]);if(null!=m){var q=this.getCellGeometry(g[e]);null!=q&&q.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&
+(q.offset=null,q.relative=!1,q.x=m.x/m.view.scale-m.view.translate.x,q.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),g);return f.encode(l)};Graph.prototype.isSwimlane=function(b,d){var g=null;null==b||this.model.isEdge(b)||this.model.getParent(b)==this.model.getRoot()||(g=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE]);return g==mxConstants.SHAPE_SWIMLANE||"table"==g};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=
+function(b){var g=this.model.getParent(b);if(null!=g){var c=this.getCurrentCellStyle(g);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==g||!this.isTable(g))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,e,f,l,k,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[b,d,c,e,f,l,k,m]);this.model.setValue(c,"");var q=this.getChildCells(c,
+!0);for(d=0;d<q.length;d++){var n=this.getCellGeometry(q[d]);null!=n&&n.relative&&0<n.x&&this.model.remove(q[d])}var G=this.getChildCells(b,!0);for(d=0;d<G.length;d++)n=this.getCellGeometry(G[d]),null!=n&&n.relative&&0>=n.x&&this.model.remove(G[d]);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,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
mxConstants.NONE,[b]);var ha=this.model.getTerminal(c,!1);if(null!=ha){var v=this.getCurrentCellStyle(ha);null!=v&&"1"==v.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,g){if(d||g)l.apply(this,arguments);
else{var c=this.getSelectionCell(),e=null,f=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(f.push(d),d==c)e=f.length-1;else if(b&&null==c&&0<f.length||null!=e&&b&&f.length>e||!b&&0<e)return;for(var g=0;g<this.model.getChildCount(d);g++)k(this.model.getChildAt(d,g))});k(this.model.root);0<f.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),f.length):0,this.setSelectionCell(f[e]))}};Graph.prototype.swapUmlLifelines=function(b,d){var g=!1;
if(null!=d&&1==b.length){var c=this.view.getState(d),e=this.view.getState(b[0]);if(null!=c&&null!=e&&"umlLifeline"==c.style.shape&&"umlLifeline"==e.style.shape&&(e=this.getCellGeometry(d),c=this.getCellGeometry(b[0]),null!=e&&null!=c)){g=e.clone();e=c.clone();e.x=g.x;e.y=g.y;g.x=c.x;g.y=c.y;this.model.beginUpdate();try{this.model.setGeometry(d,g),this.model.setGeometry(b[0],e)}finally{this.model.endUpdate()}g=!0}}return g};var q=Graph.prototype.moveCells;Graph.prototype.moveCells=function(b,d,g,c,
e,f,l){if(!c&&this.swapUmlLifelines(b,e))return b;l=null!=l?l:{};if(this.isTable(e)){for(var k=[],m=0;m<b.length;m++)this.isTable(b[m])?k=k.concat(this.model.getChildCells(b[m],!0).reverse()):k.push(b[m]);b=k}this.model.beginUpdate();try{k=[];for(m=0;m<b.length;m++)if(null!=e&&this.isTableRow(b[m])){var n=this.model.getParent(b[m]),G=this.getCellGeometry(b[m]);this.isTable(n)&&k.push(n);if(null!=n&&null!=G&&this.isTable(n)&&this.isTable(e)&&(c||n!=e)){if(!c){var v=this.getCellGeometry(n);null!=v&&
-(v=v.clone(),v.height-=G.height,this.model.setGeometry(n,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=G.height,this.model.setGeometry(e,v));var ha=this.model.getChildCells(e,!0);if(0<ha.length){b[m]=c?this.cloneCell(b[m]):b[m];var u=this.model.getChildCells(b[m],!0),p=this.model.getChildCells(ha[0],!0),B=p.length-u.length;if(0<B)for(var x=0;x<B;x++){var I=this.cloneCell(u[u.length-1]);null!=I&&(I.value="",this.model.add(b[m],I))}else if(0>B)for(x=0;x>B;x--)this.model.remove(u[u.length+
-x-1]);u=this.model.getChildCells(b[m],!0);for(x=0;x<p.length;x++){var P=this.getCellGeometry(p[x]),t=this.getCellGeometry(u[x]);null!=P&&null!=t&&(t=t.clone(),t.width=P.width,this.model.setGeometry(u[x],t))}}}}for(var ua=q.apply(this,arguments),m=0;m<k.length;m++)!c&&this.model.contains(k[m])&&0==this.model.getChildCount(k[m])&&this.model.remove(k[m]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),ua)}finally{this.model.endUpdate()}return ua};var m=Graph.prototype.removeCells;
+(v=v.clone(),v.height-=G.height,this.model.setGeometry(n,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=G.height,this.model.setGeometry(e,v));var ha=this.model.getChildCells(e,!0);if(0<ha.length){b[m]=c?this.cloneCell(b[m]):b[m];var u=this.model.getChildCells(b[m],!0),B=this.model.getChildCells(ha[0],!0),p=B.length-u.length;if(0<p)for(var x=0;x<p;x++){var I=this.cloneCell(u[u.length-1]);null!=I&&(I.value="",this.model.add(b[m],I))}else if(0>p)for(x=0;x>p;x--)this.model.remove(u[u.length+
+x-1]);u=this.model.getChildCells(b[m],!0);for(x=0;x<B.length;x++){var O=this.getCellGeometry(B[x]),t=this.getCellGeometry(u[x]);null!=O&&null!=t&&(t=t.clone(),t.width=O.width,this.model.setGeometry(u[x],t))}}}}for(var ua=q.apply(this,arguments),m=0;m<k.length;m++)!c&&this.model.contains(k[m])&&0==this.model.getChildCount(k[m])&&this.model.remove(k[m]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),ua)}finally{this.model.endUpdate()}return ua};var m=Graph.prototype.removeCells;
Graph.prototype.removeCells=function(b,d){var g=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),f=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(f)?0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f)&&g.push(f):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(f=this.model.getParent(b[c]),0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f))){for(var l=this.model.getChildCells(f,!0),k=0,q=0;q<
l.length;q++)0<=mxUtils.indexOf(b,l[q])&&k++;k==l.length&&g.push(f)}g.push(b[c])}g=m.apply(this,[g,d])}finally{this.model.endUpdate()}return g};Graph.prototype.updateCustomLinks=function(b,d,g){g=null!=g?g:new Graph;for(var c=0;c<d.length;c++)null!=d[c]&&g.updateCustomLinksForCell(b,d[c],g)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var g=this.model.getChildCount(d),c=0;c<g;c++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,c))};Graph.prototype.doUpdateCustomLinksForCell=
function(b,d){};Graph.prototype.getAllConnectionConstraints=function(b,d){if(null!=b){var g=mxUtils.getValue(b.style,"points",null);if(null!=g){var c=[];try{for(var e=JSON.parse(g),g=0;g<e.length;g++){var f=e[g];c.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(pa){}return c}if(null!=b.shape&&null!=b.shape.bounds){f=b.shape.direction;e=b.shape.bounds;g=b.shape.scale;c=e.width/g;e=e.height/g;if(f==mxConstants.DIRECTION_NORTH||
@@ -2563,8 +2566,8 @@ f==mxConstants.DIRECTION_SOUTH)f=c,c=e,e=f;g=b.shape.getConstraints(b.style,c,e)
this.setCellStyles(mxConstants.STYLE_ELBOW,d,[b])}};Graph.prototype.isValidRoot=function(b){for(var d=this.model.getChildCount(b),g=0,c=0;c<d;c++){var e=this.model.getChildAt(b,c);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||g++)}return 0<g||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b,d,g){for(var c=this.getCurrentCellStyle(b),e=!0,f=!0,l=0;l<d.length&&f;l++)e=e&&this.isTable(d[l]),f=f&&this.isTableRow(d[l]);return("1"!=mxUtils.getValue(c,"part","0")||
this.isContainer(b))&&"0"!=mxUtils.getValue(c,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||f||e)&&!this.isCellLocked(b)};Graph.prototype.createGroupCell=function(){var b=mxGraph.prototype.createGroupCell.apply(this,arguments);b.setStyle("group");return b};Graph.prototype.isExtendParentsOnAdd=function(b){var d=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(d&&null!=b&&null!=this.layoutManager){var g=
this.model.getParent(b);null!=g&&(g=this.layoutManager.getLayout(g),null!=g&&g.constructor==mxStackLayout&&(d=!1))}return d};Graph.prototype.getPreferredSizeForCell=function(b){var d=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=d&&(d.width+=10,d.height+=4,this.gridEnabled&&(d.width=this.snap(d.width),d.height=this.snap(d.height)));return d};Graph.prototype.turnShapes=function(b,d){var g=this.getModel(),c=[];g.beginUpdate();try{for(var e=0;e<b.length;e++){var f=b[e];if(g.isEdge(f)){var l=
-g.getTerminal(f,!0),k=g.getTerminal(f,!1);g.setTerminal(f,k,!0);g.setTerminal(f,l,!1);var m=g.getGeometry(f);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var q=m.getTerminalPoint(!0),n=m.getTerminalPoint(!1);m.setTerminalPoint(q,!1);m.setTerminalPoint(n,!0);g.setGeometry(f,m);var G=this.view.getState(f),v=this.view.getState(l),u=this.view.getState(k);if(null!=G){var ha=null!=v?this.getConnectionConstraint(G,v,!0):null,p=null!=u?this.getConnectionConstraint(G,u,!1):null;this.setConnectionConstraint(f,
-l,!0,p);this.setConnectionConstraint(f,k,!1,ha);var B=mxUtils.getValue(G.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(G.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,B,[f])}c.push(f)}}else if(g.isVertex(f)&&(m=this.getCellGeometry(f),null!=m)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){m=m.clone();m.x+=m.width/
+g.getTerminal(f,!0),k=g.getTerminal(f,!1);g.setTerminal(f,k,!0);g.setTerminal(f,l,!1);var m=g.getGeometry(f);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var q=m.getTerminalPoint(!0),n=m.getTerminalPoint(!1);m.setTerminalPoint(q,!1);m.setTerminalPoint(n,!0);g.setGeometry(f,m);var G=this.view.getState(f),v=this.view.getState(l),u=this.view.getState(k);if(null!=G){var ha=null!=v?this.getConnectionConstraint(G,v,!0):null,B=null!=u?this.getConnectionConstraint(G,u,!1):null;this.setConnectionConstraint(f,
+l,!0,B);this.setConnectionConstraint(f,k,!1,ha);var p=mxUtils.getValue(G.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(G.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,p,[f])}c.push(f)}}else if(g.isVertex(f)&&(m=this.getCellGeometry(f),null!=m)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){m=m.clone();m.x+=m.width/
2-m.height/2;m.y+=m.height/2-m.width/2;var x=m.width;m.width=m.height;m.height=x;g.setGeometry(f,m)}var I=this.view.getState(f);if(null!=I){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],y=mxUtils.getValue(I.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,y)+(d?-1:1),t.length)],[f])}c.push(f)}}}finally{g.endUpdate()}return c};Graph.prototype.stencilHasPlaceholders=
function(b){if(null!=b&&null!=b.fgNode)for(b=b.fgNode.firstChild;null!=b;){if("text"==b.nodeName&&"1"==b.getAttribute("placeholders"))return!0;b=b.nextSibling}return!1};var n=Graph.prototype.processChange;Graph.prototype.processChange=function(b){if(b instanceof mxGeometryChange&&(this.isTableCell(b.cell)||this.isTableRow(b.cell))&&(null==b.previous&&null!=b.geometry||null!=b.previous&&!b.previous.equals(b.geometry))){var d=b.cell;this.isTableCell(d)&&(d=this.model.getParent(d));this.isTableRow(d)&&
(d=this.model.getParent(d));var g=this.view.getState(d);null!=g&&null!=g.shape&&(this.view.invalidate(d),g.shape.bounds=null)}n.apply(this,arguments);b instanceof mxValueChange&&null!=b.cell&&null!=b.cell.value&&"object"==typeof b.cell.value&&this.invalidateDescendantsWithPlaceholders(b.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(b){b=this.model.getDescendants(b);if(0<b.length)for(var d=0;d<b.length;d++){var g=this.view.getState(b[d]);null!=g&&null!=g.shape&&null!=g.shape.stencil&&
@@ -2595,13 +2598,13 @@ u))}}else f.push(m[g])}this.updateCustomLinks(this.createCellMapping(l,k),m,this
g[c-1]){for(d=d[c].getElementsByTagName("a");0<d.length;){for(g=d[0].parentNode;null!=d[0].firstChild;)g.insertBefore(d[0].firstChild,d[0]);g.removeChild(d[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(b))};Graph.prototype.isCellResizable=function(b){var d=mxGraph.prototype.isCellResizable.apply(this,arguments),g=this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(g,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==g[mxConstants.STYLE_WHITE_SPACE])};
Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var g=[],c=null,e=null,f=0;f<d.length;f++)if(this.getModel().isVertex(d[f])){var l=this.view.getState(d[f]);if(null!=l){var k=b?l.getCenterX():l.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):k;g.push(l)}}if(2<g.length){g.sort(function(d,g){return b?d.x-g.x:d.y-g.y});l=this.view.translate;k=this.view.scale;e=e/k-(b?l.x:l.y);c=c/k-(b?l.x:l.y);this.getModel().beginUpdate();
try{for(var m=(c-e)/(g.length-1),c=e,f=1;f<g.length-1;f++){var q=this.view.getState(this.model.getParent(g[f].cell)),n=this.getCellGeometry(g[f].cell),c=c+m;null!=n&&null!=q&&(n=n.clone(),b?n.x=Math.round(c-n.width/2)-q.origin.x:n.y=Math.round(c-n.height/2)-q.origin.y,this.getModel().setGeometry(g[f].cell,n))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};Graph.prototype.createSvgImageExport=
-function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,g,c,e,f,l,k,m,q,n,G,v,u){var p=null;if(null!=u)for(p=new mxDictionary,n=0;n<u.length;n++)p.put(u[n],!0);if(u=this.useCssTransforms)this.useCssTransforms=
-!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;g=null!=g?g:0;e=null!=e?e:!0;f=null!=f?f:!0;l=null!=l?l:!0;q=null!=q?q:!1;var B="page"==v?this.view.getBackgroundPageBounds():f&&null==p||c||"diagram"==v?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(B=mxRectangle.fromRectangle(B),B.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*x,(this.view.translate.y+this.backgroundImage.y)*x,this.backgroundImage.width*
-x,this.backgroundImage.height*x)));if(null==B)throw Error(mxResources.get("drawingEmpty"));var I=mxUtils.createXmlDocument(),t=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"svg"):I.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==I.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);
-b=d/x;var y=Math.max(1,Math.ceil(B.width*b)+2*g)+(q&&0==g?5:0),z=Math.max(1,Math.ceil(B.height*b)+2*g)+(q&&0==g?5:0);t.setAttribute("version","1.1");t.setAttribute("width",y+"px");t.setAttribute("height",z+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+y+" "+z);I.appendChild(t);var S=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"g"):I.createElement("g");t.appendChild(S);var C=this.createSvgCanvas(S);C.foOffset=e?-.5:0;C.textOffset=e?-.5:0;C.imageOffset=e?-.5:0;C.translate(Math.floor(g/
-d-B.x/x),Math.floor(g/d-B.y/x));var ha=document.createElement("div"),ca=C.getAlternateText;C.getAlternateText=function(b,d,g,c,e,f,l,k,m,q,n,G,A){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(ha.innerHTML=f,f=mxUtils.extractTextWithWhitespace(ha.childNodes));for(var va=Math.ceil(2*c/this.state.fontSize),Sa=[],Da=0,Ta=0;(0==va||Da<va)&&Ta<f.length;){var Wa=f.charCodeAt(Ta);if(10==Wa||13==Wa){if(0<Da)break}else Sa.push(f.charAt(Ta)),255>Wa&&Da++;Ta++}Sa.length<f.length&&1<f.length-
-Sa.length&&(f=mxUtils.trim(Sa.join(""))+"...");return f}catch(hb){return ca.apply(this,arguments)}else return ca.apply(this,arguments)};var L=this.backgroundImage;if(null!=L){d=x/d;var V=this.view.translate,P=new mxRectangle((L.x+V.x)*d,(L.y+V.y)*d,L.width*d,L.height*d);mxUtils.intersects(B,P)&&C.image(L.x+V.x,L.y+V.y,L.width,L.height,L.src,!0)}C.scale(b);C.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ua=k.drawCellState,D=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var g=
-D.apply(this,arguments);return null==g||b.view.graph.isCustomLink(g)?null:g};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var g=b.view.graph,c=null!=p?p.get(b.cell):g.isCellSelected(b.cell),e=g.model.getParent(b.cell);!(f&&null==p||c)&&null!=e;)c=null!=p?p.get(e):g.isCellSelected(e),e=g.model.getParent(e);(f&&null==p||c)&&ua.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),C);this.updateSvgLinks(t,
+function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,g,c,e,f,l,k,m,q,n,G,v,u){var B=null;if(null!=u)for(B=new mxDictionary,n=0;n<u.length;n++)B.put(u[n],!0);if(u=this.useCssTransforms)this.useCssTransforms=
+!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;g=null!=g?g:0;e=null!=e?e:!0;f=null!=f?f:!0;l=null!=l?l:!0;q=null!=q?q:!1;var p="page"==v?this.view.getBackgroundPageBounds():f&&null==B||c||"diagram"==v?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(p=mxRectangle.fromRectangle(p),p.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*x,(this.view.translate.y+this.backgroundImage.y)*x,this.backgroundImage.width*
+x,this.backgroundImage.height*x)));if(null==p)throw Error(mxResources.get("drawingEmpty"));var I=mxUtils.createXmlDocument(),t=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"svg"):I.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==I.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);
+b=d/x;var y=Math.max(1,Math.ceil(p.width*b)+2*g)+(q&&0==g?5:0),z=Math.max(1,Math.ceil(p.height*b)+2*g)+(q&&0==g?5:0);t.setAttribute("version","1.1");t.setAttribute("width",y+"px");t.setAttribute("height",z+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+y+" "+z);I.appendChild(t);var S=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"g"):I.createElement("g");t.appendChild(S);var C=this.createSvgCanvas(S);C.foOffset=e?-.5:0;C.textOffset=e?-.5:0;C.imageOffset=e?-.5:0;C.translate(Math.floor(g/
+d-p.x/x),Math.floor(g/d-p.y/x));var ha=document.createElement("div"),ca=C.getAlternateText;C.getAlternateText=function(b,d,g,c,e,f,l,k,m,q,n,G,A){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(ha.innerHTML=f,f=mxUtils.extractTextWithWhitespace(ha.childNodes));for(var va=Math.ceil(2*c/this.state.fontSize),Sa=[],Da=0,Ta=0;(0==va||Da<va)&&Ta<f.length;){var Wa=f.charCodeAt(Ta);if(10==Wa||13==Wa){if(0<Da)break}else Sa.push(f.charAt(Ta)),255>Wa&&Da++;Ta++}Sa.length<f.length&&1<f.length-
+Sa.length&&(f=mxUtils.trim(Sa.join(""))+"...");return f}catch(hb){return ca.apply(this,arguments)}else return ca.apply(this,arguments)};var M=this.backgroundImage;if(null!=M){d=x/d;var V=this.view.translate,O=new mxRectangle((M.x+V.x)*d,(M.y+V.y)*d,M.width*d,M.height*d);mxUtils.intersects(p,O)&&C.image(M.x+V.x,M.y+V.y,M.width,M.height,M.src,!0)}C.scale(b);C.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ua=k.drawCellState,D=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var g=
+D.apply(this,arguments);return null==g||b.view.graph.isCustomLink(g)?null:g};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var g=b.view.graph,c=null!=B?B.get(b.cell):g.isCellSelected(b.cell),e=g.model.getParent(b.cell);!(f&&null==B||c)&&null!=e;)c=null!=B?B.get(e):g.isCellSelected(e),e=g.model.getParent(e);(f&&null==B||c)&&ua.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),C);this.updateSvgLinks(t,
m,!0);this.addForeignObjectWarning(C,t);return t}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(b,d){if("0"!=urlParams["svg-warning"]&&0<d.getElementsByTagName("foreignObject").length){var g=b.createElement("switch"),c=b.createElement("g");c.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||
d.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var f=b.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);g.appendChild(c);
e.appendChild(f);g.appendChild(e);d.appendChild(g)}};Graph.prototype.updateSvgLinks=function(b,d,g){b=b.getElementsByTagName("a");for(var c=0;c<b.length;c++)if(null==b[c].getAttribute("target")){var e=b[c].getAttribute("href");null==e&&(e=b[c].getAttribute("xlink:href"));null!=e&&(null!=d&&/^https?:\/\//.test(e)?b[c].setAttribute("target",d):g&&this.isCustomLink(e)&&b[c].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(b){b=new mxSvgCanvas2D(b);b.pointerEvents=
@@ -2651,16 +2654,16 @@ if(null!=e&&(g=this.graph.getCellStyle(c),"stackLayout"==g.childLayout)){var f=p
(g.put(b,!0),e.push(b))}for(var d=E.apply(this,arguments),g=new mxDictionary,c=this.graph.model,e=[],f=0;f<d.length;f++){var l=d[f];this.graph.isTableCell(l)?b(c.getParent(c.getParent(l))):this.graph.isTableRow(l)&&b(c.getParent(l));b(l)}return e};var J=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=J.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};var C=mxEdgeHandler.prototype.createParentHighlightShape;
mxEdgeHandler.prototype.createParentHighlightShape=function(b){var d=C.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var b=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+b.x/2,this.bounds.y+this.rotationHandleVSpacing-b.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(b,d){return this.graph.isRecursiveVertexResize(b)&&
!mxEvent.isControlDown(d.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(b,d){return!(!this.graph.isSwimlane(b.cell)&&0<this.graph.model.getChildCount(b.cell)&&!this.graph.isCellCollapsed(b.cell)&&"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,"childLayout",null))&&mxEvent.isControlDown(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var K=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return K.apply(this,
-arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var M=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return M.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&
-!this.graph.isTableRow(this.state.cell)};var Z=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||Z.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var b=0;this.graph.isTableRow(this.state.cell)?b=1:this.graph.isTableCell(this.state.cell)&&(b=2);return b};var L=mxVertexHandler.prototype.getSelectionBorderBounds;
-mxVertexHandler.prototype.getSelectionBorderBounds=function(){return L.apply(this,arguments).grow(-this.getSelectionBorderInset())};var O=null,U=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==O&&(O=mxCellRenderer.defaultShapes.tableLine);var b=U.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=function(b,d,g){for(var c=[],e=0;e<b.length;e++){var l=b[e];c.push(null==l?null:new mxPoint((m+l.x+d)*f,(q+l.y+g)*f))}return c},
+arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var L=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return L.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&
+!this.graph.isTableRow(this.state.cell)};var Z=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||Z.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var b=0;this.graph.isTableRow(this.state.cell)?b=1:this.graph.isTableCell(this.state.cell)&&(b=2);return b};var M=mxVertexHandler.prototype.getSelectionBorderBounds;
+mxVertexHandler.prototype.getSelectionBorderBounds=function(){return M.apply(this,arguments).grow(-this.getSelectionBorderInset())};var P=null,U=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==P&&(P=mxCellRenderer.defaultShapes.tableLine);var b=U.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=function(b,d,g){for(var c=[],e=0;e<b.length;e++){var l=b[e];c.push(null==l?null:new mxPoint((m+l.x+d)*f,(q+l.y+g)*f))}return c},
g=this,c=this.graph,e=c.model,f=c.view.scale,l=this.state,k=this.selectionBorder,m=this.state.origin.x+c.view.translate.x,q=this.state.origin.y+c.view.translate.y;null==b&&(b=[]);var n=c.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<n.length){for(var G=e.getChildCells(n[0].cell,!0),v=c.getTableLines(this.state.cell,!1,!0),u=c.getTableLines(this.state.cell,!0,!1),e=0;e<G.length;e++)mxUtils.bind(this,function(e){var m=c.view.getState(G[e]),q=c.getCellGeometry(G[e]),n=null!=q.alternateBounds?
-q.alternateBounds:q;null==m&&(m=new mxCellState(c.view,G[e],c.getCellStyle(G[e])),m.x=l.x+q.x*f,m.y=l.y+q.y*f,m.width=n.width*f,m.height=n.height*f,m.updateCachedBounds());var q=e<G.length-1?G[e+1]:null,q=null!=q?c.getCellGeometry(q):null,u=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=v[e]?new O(v[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);q.isDashed=k.isDashed;q.svgStrokeTolerance++;m=new mxHandle(m,"col-resize",null,q);m.tableHandle=!0;var p=0;m.shape.node.parentNode.insertBefore(m.shape.node,
-m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==p?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(v[e],p,0),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=this.state.x+(n.width+p)*f;this.shape.bounds.y=l.y+(e==G.length-1?0:b.y*f);this.shape.bounds.height=l.height-(e==G.length-1?0:(b.height+b.y)*f)}this.shape.redraw()}};var B=
-!1;m.setPosition=function(b,d,g){p=Math.max(Graph.minTableColumnWidth-n.width,d.x-b.x-n.width);B=mxEvent.isShiftDown(g.getEvent());null==u||B||(p=Math.min(p,u.width-Graph.minTableColumnWidth))};m.execute=function(b){if(0!=p)c.setTableColumnWidth(this.state.cell,p,B);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}p=0};m.positionChanged=function(){};m.reset=function(){p=0};b.push(m)})(e);for(e=0;e<n.length;e++)mxUtils.bind(this,
-function(e){var m=n[e],q=e<n.length-1?n[e+1]:null,q=null!=q?c.getCellGeometry(q.cell):null,G=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=u[e]?new O(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);q.isDashed=k.isDashed;q.svgStrokeTolerance++;m=new mxHandle(m,"row-resize",null,q);m.tableHandle=!0;var v=0;m.shape.node.parentNode.insertBefore(m.shape.node,m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=
-0==v?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(u[e],0,v),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+v*f;this.shape.bounds.x=l.x+(e==n.length-1?0:b.x*f);this.shape.bounds.width=l.width-(e==n.length-1?0:b.width+b.x+f)}this.shape.redraw()}};var p=!1;m.setPosition=function(b,d,g){v=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height);p=mxEvent.isShiftDown(g.getEvent());
-null!=G&&p&&(v=Math.min(v,G.height-Graph.minTableRowHeight))};m.execute=function(b){if(0!=v)c.setTableRowHeight(this.state.cell,v,!p);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}v=0};m.reset=function(){v=0};b.push(m)})(e)}}return null!=b?b.reverse():null};var G=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){G.apply(this,arguments);if(null!=this.moveHandles)for(var d=
+q.alternateBounds:q;null==m&&(m=new mxCellState(c.view,G[e],c.getCellStyle(G[e])),m.x=l.x+q.x*f,m.y=l.y+q.y*f,m.width=n.width*f,m.height=n.height*f,m.updateCachedBounds());var q=e<G.length-1?G[e+1]:null,q=null!=q?c.getCellGeometry(q):null,u=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=v[e]?new P(v[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);q.isDashed=k.isDashed;q.svgStrokeTolerance++;m=new mxHandle(m,"col-resize",null,q);m.tableHandle=!0;var B=0;m.shape.node.parentNode.insertBefore(m.shape.node,
+m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==B?mxConstants.NONE:k.stroke;if(this.shape.constructor==P)this.shape.line=d(v[e],B,0),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=this.state.x+(n.width+B)*f;this.shape.bounds.y=l.y+(e==G.length-1?0:b.y*f);this.shape.bounds.height=l.height-(e==G.length-1?0:(b.height+b.y)*f)}this.shape.redraw()}};var p=
+!1;m.setPosition=function(b,d,g){B=Math.max(Graph.minTableColumnWidth-n.width,d.x-b.x-n.width);p=mxEvent.isShiftDown(g.getEvent());null==u||p||(B=Math.min(B,u.width-Graph.minTableColumnWidth))};m.execute=function(b){if(0!=B)c.setTableColumnWidth(this.state.cell,B,p);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}B=0};m.positionChanged=function(){};m.reset=function(){B=0};b.push(m)})(e);for(e=0;e<n.length;e++)mxUtils.bind(this,
+function(e){var m=n[e],q=e<n.length-1?n[e+1]:null,q=null!=q?c.getCellGeometry(q.cell):null,G=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=u[e]?new P(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);q.isDashed=k.isDashed;q.svgStrokeTolerance++;m=new mxHandle(m,"row-resize",null,q);m.tableHandle=!0;var v=0;m.shape.node.parentNode.insertBefore(m.shape.node,m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=
+0==v?mxConstants.NONE:k.stroke;if(this.shape.constructor==P)this.shape.line=d(u[e],0,v),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+v*f;this.shape.bounds.x=l.x+(e==n.length-1?0:b.x*f);this.shape.bounds.width=l.width-(e==n.length-1?0:b.width+b.x+f)}this.shape.redraw()}};var B=!1;m.setPosition=function(b,d,g){v=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height);B=mxEvent.isShiftDown(g.getEvent());
+null!=G&&B&&(v=Math.min(v,G.height-Graph.minTableRowHeight))};m.execute=function(b){if(0!=v)c.setTableRowHeight(this.state.cell,v,!B);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}v=0};m.reset=function(){v=0};b.push(m)})(e)}}return null!=b?b.reverse():null};var G=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){G.apply(this,arguments);if(null!=this.moveHandles)for(var d=
0;d<this.moveHandles.length;d++)this.moveHandles[d].style.visibility=b?"":"hidden";if(null!=this.cornerHandles)for(d=0;d<this.cornerHandles.length;d++)this.cornerHandles[d].node.style.visibility=b?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var b=this.graph.model;if(null!=this.moveHandles){for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].parentNode.removeChild(this.moveHandles[d]);this.moveHandles=null}this.moveHandles=[];for(d=0;d<b.getChildCount(this.state.cell);d++)mxUtils.bind(this,
function(d){if(null!=d&&b.isVertex(d.cell)){var g=mxUtils.createImage(Editor.rowMoveImage);g.style.position="absolute";g.style.cursor="pointer";g.style.width="7px";g.style.height="4px";g.style.padding="4px 2px 4px 2px";g.rowState=d;mxEvent.addGestureListeners(g,mxUtils.bind(this,function(b){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(b)&&this.graph.isCellSelected(d.cell)||this.graph.selectCellForEvent(d.cell,b);mxEvent.isPopupTrigger(b)||(this.graph.graphHandler.start(this.state.cell,
mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0);mxEvent.consume(b)}),null,mxUtils.bind(this,function(b){mxEvent.isPopupTrigger(b)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(b),mxEvent.getClientY(b),d.cell,b),mxEvent.consume(b))}));this.moveHandles.push(g);this.graph.container.appendChild(g)}})(this.graph.view.getState(b.getChildAt(this.state.cell,
@@ -2716,9 +2719,9 @@ this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.hei
this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function b(b,d,g){mxShape.call(this);this.line=b;this.stroke=d;this.strokewidth=null!=g?g:1;this.updateBoundsFromLine()}function c(){mxSwimlane.call(this)}function e(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function f(){mxActor.call(this)}function p(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function l(){mxShape.call(this)}function q(){mxShape.call(this)}function m(b,d,g,c){mxShape.call(this);
this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1}function n(){mxActor.call(this)}function u(){mxCylinder.call(this)}function v(){mxCylinder.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function F(){mxActor.call(this)}function H(){mxActor.call(this)}function z(){mxActor.call(this)}function D(){mxActor.call(this)}function N(){mxActor.call(this)}function E(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=
d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,E.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,E.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,E.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,E.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,E.prototype.curveTo);this.originalArcTo=
-this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,E.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function C(){mxRectangleShape.call(this)}function K(){mxActor.call(this)}function M(){mxActor.call(this)}function Z(){mxActor.call(this)}function L(){mxRectangleShape.call(this)}function O(){mxRectangleShape.call(this)}function U(){mxCylinder.call(this)}function G(){mxShape.call(this)}function I(){mxShape.call(this)}function B(){mxEllipse.call(this)}function ca(){mxShape.call(this)}function S(){mxShape.call(this)}
+this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,E.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function C(){mxRectangleShape.call(this)}function K(){mxActor.call(this)}function L(){mxActor.call(this)}function Z(){mxActor.call(this)}function M(){mxRectangleShape.call(this)}function P(){mxRectangleShape.call(this)}function U(){mxCylinder.call(this)}function G(){mxShape.call(this)}function I(){mxShape.call(this)}function B(){mxEllipse.call(this)}function ca(){mxShape.call(this)}function S(){mxShape.call(this)}
function Q(){mxRectangleShape.call(this)}function V(){mxShape.call(this)}function oa(){mxShape.call(this)}function fa(){mxShape.call(this)}function ka(){mxShape.call(this)}function ra(){mxShape.call(this)}function la(){mxCylinder.call(this)}function ja(){mxCylinder.call(this)}function aa(){mxRectangleShape.call(this)}function ba(){mxDoubleEllipse.call(this)}function R(){mxDoubleEllipse.call(this)}function sa(){mxArrowConnector.call(this);this.spacing=0}function W(){mxArrowConnector.call(this);this.spacing=
-0}function X(){mxActor.call(this)}function ma(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function T(){mxActor.call(this)}function ia(){mxActor.call(this)}function da(){mxActor.call(this)}function na(){mxActor.call(this)}function ha(){mxActor.call(this)}function ua(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
+0}function X(){mxActor.call(this)}function ma(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function T(){mxActor.call(this)}function ia(){mxActor.call(this)}function da(){mxActor.call(this)}function na(){mxActor.call(this)}function ha(){mxActor.call(this)}function ua(){mxActor.call(this)}function O(){mxActor.call(this)}function ea(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
function za(){mxRhombus.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function Aa(){mxEllipse.call(this)}function Ka(){mxActor.call(this)}function Ca(){mxActor.call(this)}function wa(){mxActor.call(this)}function Y(b,d,g,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Fa(){mxConnector.call(this)}
function Na(b,d,g,c,e,f,l,k,m,q){l+=m;var A=c.clone();c.x-=e*(2*l+m);c.y-=f*(2*l+m);e*=l+m;f*=l+m;return function(){b.ellipse(A.x-e-l,A.y-f-l,2*l,2*l);q?b.fillAndStroke():b.stroke()}}mxUtils.extend(b,mxShape);b.prototype.updateBoundsFromLine=function(){var b=null;if(null!=this.line)for(var d=0;d<this.line.length;d++){var g=this.line[d];null!=g&&(g=new mxRectangle(g.x,g.y,this.strokewidth,this.strokewidth),null==b?b=g:b.add(g))}this.bounds=null!=b?b:new mxRectangle};b.prototype.paintVertexShape=function(b,
d,g,c,e){this.paintTableLine(b,this.line,0,0)};b.prototype.paintTableLine=function(b,d,g,c){if(null!=d){var e=null;b.begin();for(var A=0;A<d.length;A++){var f=d[A];null!=f&&(null==e?b.moveTo(f.x+g,f.y+c):null!=e&&b.lineTo(f.x+g,f.y+c));e=f}b.end();b.stroke()}};b.prototype.intersectsRectangle=function(b){var d=!1;if(mxShape.prototype.intersectsRectangle.apply(this,arguments)&&null!=this.line)for(var g=null,c=0;c<this.line.length&&!d;c++){var e=this.line[c];null!=e&&null!=g&&(d=mxUtils.rectangleIntersectsSegment(b,
@@ -2767,15 +2770,15 @@ mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConst
J.prototype.paintForeground=function(b,d,g,c,e){var f=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),A=parseFloat(mxUtils.getValue(this.style,"size",this.size)),A=f?Math.max(0,Math.min(c,A)):c*Math.max(0,Math.min(1,A));this.isRounded&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,A=Math.max(A,Math.min(c*f,e*f)));A=Math.round(A);b.begin();b.moveTo(d+A,g);b.lineTo(d+A,g+e);b.moveTo(d+c-A,g);b.lineTo(d+c-A,g+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
arguments)};mxCellRenderer.registerShape("process",J);mxCellRenderer.registerShape("process2",J);mxUtils.extend(C,mxRectangleShape);C.prototype.paintBackground=function(b,d,g,c,e){b.setFillColor(mxConstants.NONE);b.rect(d,g,c,e);b.fill()};C.prototype.paintForeground=function(b,d,g,c,e){};mxCellRenderer.registerShape("transparent",C);mxUtils.extend(K,mxHexagon);K.prototype.size=30;K.prototype.position=.5;K.prototype.position2=.5;K.prototype.base=20;K.prototype.getLabelMargins=function(){return new mxRectangle(0,
0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(b,d,g,c,e){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),A=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",
-this.position2)))),l=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-g),new mxPoint(Math.min(c,f+l),e-g),new mxPoint(A,e),new mxPoint(Math.max(0,f),e-g),new mxPoint(0,e-g)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",K);mxUtils.extend(M,mxActor);M.prototype.size=.2;M.prototype.fixedSize=20;M.prototype.isRoundable=function(){return!0};M.prototype.redrawPath=function(b,d,g,c,e){d=
-"0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(0,e),new mxPoint(d,e/2)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("step",M);
+this.position2)))),l=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-g),new mxPoint(Math.min(c,f+l),e-g),new mxPoint(A,e),new mxPoint(Math.max(0,f),e-g),new mxPoint(0,e-g)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",K);mxUtils.extend(L,mxActor);L.prototype.size=.2;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(b,d,g,c,e){d=
+"0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(0,e),new mxPoint(d,e/2)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("step",L);
mxUtils.extend(Z,mxHexagon);Z.prototype.size=.25;Z.prototype.fixedSize=20;Z.prototype.isRoundable=function(){return!0};Z.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,
-0),new mxPoint(c-d,0),new mxPoint(c,.5*e),new mxPoint(c-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,g,!0)};mxCellRenderer.registerShape("hexagon",Z);mxUtils.extend(L,mxRectangleShape);L.prototype.isHtmlAllowed=function(){return!1};L.prototype.paintForeground=function(b,d,g,c,e){var f=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,g+f);b.lineTo(d+c/2,g+e-f);b.moveTo(d+f,g+e/2);b.lineTo(d+c-f,g+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",
-L);var Za=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};mxRhombus.prototype.paintVertexShape=function(b,d,g,c,e){Za.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
-0);d+=f;g+=f;c-=2*f;e-=2*f;0<c&&0<e&&(b.setShadow(!1),Za.apply(this,[b,d,g,c,e]))}};mxUtils.extend(O,mxRectangleShape);O.prototype.isHtmlAllowed=function(){return!1};O.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};O.prototype.paintForeground=function(b,d,g,c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=
+0),new mxPoint(c-d,0),new mxPoint(c,.5*e),new mxPoint(c-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,g,!0)};mxCellRenderer.registerShape("hexagon",Z);mxUtils.extend(M,mxRectangleShape);M.prototype.isHtmlAllowed=function(){return!1};M.prototype.paintForeground=function(b,d,g,c,e){var f=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,g+f);b.lineTo(d+c/2,g+e-f);b.moveTo(d+f,g+e/2);b.lineTo(d+c-f,g+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",
+M);var Za=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};mxRhombus.prototype.paintVertexShape=function(b,d,g,c,e){Za.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
+0);d+=f;g+=f;c-=2*f;e-=2*f;0<c&&0<e&&(b.setShadow(!1),Za.apply(this,[b,d,g,c,e]))}};mxUtils.extend(P,mxRectangleShape);P.prototype.isHtmlAllowed=function(){return!1};P.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};P.prototype.paintForeground=function(b,d,g,c,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);d+=f;g+=f;c-=2*f;e-=2*f;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var f=0,A;do{A=mxCellRenderer.defaultShapes[this.style["symbol"+f]];if(null!=A){var l=this.style["symbol"+f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],m=this.style["symbol"+f+"Width"],q=this.style["symbol"+f+"Height"],n=this.style["symbol"+f+"Spacing"]||0,G=this.style["symbol"+f+"VSpacing"]||n,va=
this.style["symbol"+f+"ArcSpacing"];null!=va&&(va*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),n+=va,G+=va);var va=d,Da=g,va=l==mxConstants.ALIGN_CENTER?va+(c-m)/2:l==mxConstants.ALIGN_RIGHT?va+(c-m-n):va+n,Da=k==mxConstants.ALIGN_MIDDLE?Da+(e-q)/2:k==mxConstants.ALIGN_BOTTOM?Da+(e-q-G):Da+G;b.save();l=new A;l.style=this.style;A.prototype.paintVertexShape.call(l,b,va,Da,m,q);b.restore()}f++}while(null!=A)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
-O);mxUtils.extend(U,mxCylinder);U.prototype.redrawPath=function(b,d,g,c,e,f){f?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",U);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/
+P);mxUtils.extend(U,mxCylinder);U.prototype.redrawPath=function(b,d,g,c,e,f){f?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",U);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/
2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",G);mxUtils.extend(I,mxShape);I.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};I.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",
I);mxUtils.extend(B,mxEllipse);B.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,g+e);b.lineTo(d+7*c/8,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",B);mxUtils.extend(ca,mxShape);ca.prototype.paintVertexShape=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",ca);mxUtils.extend(S,mxShape);
S.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};S.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};S.prototype.paintForeground=function(b,d,g,c,e){b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",S);mxUtils.extend(Q,mxRectangleShape);Q.prototype.size=
@@ -2791,7 +2794,7 @@ d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?H.prototype.fixe
k,A+m),new mxPoint(l,A+m-e),new mxPoint(l,A)]):(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),A=[new mxPoint(l+e,A),new mxPoint(l+k,A),new mxPoint(l+k-e,A+m),new mxPoint(l,A+m),new mxPoint(l+e,A)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(A,b,g)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,
"fixedSize","0"),f=e?z.prototype.fixedSize:z.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,A=b.y,k=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),A=[new mxPoint(l+e,A),new mxPoint(l+k-e,A),new mxPoint(l+k,A+m),new mxPoint(l,A+m),new mxPoint(l+e,A)]):d==mxConstants.DIRECTION_WEST?
(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A),new mxPoint(l+k,A),new mxPoint(l+k-e,A+m),new mxPoint(l+e,A+m),new mxPoint(l,A)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A+e),new mxPoint(l+k,A),new mxPoint(l+k,A+m),new mxPoint(l,A+m-e),new mxPoint(l,A+e)]):(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A),new mxPoint(l+k,A+e),new mxPoint(l+k,A+m-e),new mxPoint(l,A+m),new mxPoint(l,
-A)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(A,b,g)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?M.prototype.fixedSize:M.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,A=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=
+A)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(A,b,g)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?L.prototype.fixedSize:L.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,A=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=
d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A),new mxPoint(l+k-e,A),new mxPoint(l+k,b),new mxPoint(l+k-e,A+m),new mxPoint(l,A+m),new mxPoint(l+e,b),new mxPoint(l,A)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),A=[new mxPoint(l+e,A),new mxPoint(l+k,A),new mxPoint(l+k-e,b),new mxPoint(l+
k,A+m),new mxPoint(l+e,A+m),new mxPoint(l,b),new mxPoint(l+e,A)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A+e),new mxPoint(q,A),new mxPoint(l+k,A+e),new mxPoint(l+k,A+m),new mxPoint(q,A+m-e),new mxPoint(l,A+m),new mxPoint(l,A+e)]):(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A),new mxPoint(q,A+e),new mxPoint(l+k,A),new mxPoint(l+k,A+m-e),new mxPoint(q,A+m),new mxPoint(l,A+m-e),new mxPoint(l,A)]);q=new mxPoint(q,
b);c&&(g.x<l||g.x>l+k?q.y=g.y:q.x=g.x);return mxUtils.getPerimeterPoint(A,q,g)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?Z.prototype.fixedSize:Z.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,A=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
@@ -2814,7 +2817,7 @@ mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPo
this.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));g=(e-f)/2;var f=g+f,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,g),new mxPoint(c-d,g),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,f),new mxPoint(0,f)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("singleArrow",da);mxUtils.extend(na,mxActor);na.prototype.redrawPath=function(b,
d,g,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize))));g=(e-f)/2;var f=g+f,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e/2),new mxPoint(d,0),new mxPoint(d,g),new mxPoint(c-d,g),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,f),new mxPoint(d,
f),new mxPoint(d,e)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("doubleArrow",na);mxUtils.extend(ha,mxActor);ha.prototype.size=.1;ha.prototype.fixedSize=20;ha.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(d,0);b.lineTo(c,0);b.quadTo(c-2*d,e/2,c,e);b.lineTo(d,
-e);b.quadTo(d-2*d,e/2,d,0);b.close();b.end()};mxCellRenderer.registerShape("dataStorage",ha);mxUtils.extend(ua,mxActor);ua.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.close();b.end()};mxCellRenderer.registerShape("or",ua);mxUtils.extend(P,mxActor);P.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.quadTo(c/2,e/2,0,0);b.close();b.end()};mxCellRenderer.registerShape("xor",P);mxUtils.extend(ea,mxActor);ea.prototype.size=
+e);b.quadTo(d-2*d,e/2,d,0);b.close();b.end()};mxCellRenderer.registerShape("dataStorage",ha);mxUtils.extend(ua,mxActor);ua.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.close();b.end()};mxCellRenderer.registerShape("or",ua);mxUtils.extend(O,mxActor);O.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.quadTo(c/2,e/2,0,0);b.close();b.end()};mxCellRenderer.registerShape("xor",O);mxUtils.extend(ea,mxActor);ea.prototype.size=
20;ea.prototype.isRoundable=function(){return!0};ea.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.8*d),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,.8*d)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("loopLimit",ea);mxUtils.extend(ta,mxActor);ta.prototype.size=
.375;ta.prototype.isRoundable=function(){return!0};ta.prototype.redrawPath=function(b,d,g,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-d),new mxPoint(c/2,e),new mxPoint(0,e-d)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("offPageConnector",ta);mxUtils.extend(ya,mxEllipse);ya.prototype.paintVertexShape=
function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/2,g+e);b.lineTo(d+c,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("tapeData",ya);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,g+e/2);b.lineTo(d+c,g+e/2);b.end();b.stroke();b.begin();b.moveTo(d+c/2,g);b.lineTo(d+c/2,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("orEllipse",
@@ -2831,54 +2834,54 @@ type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",
{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
dispName:"Fold"}]}];Y.prototype.paintVertexShape=function(b,d,g,c,e){b.translate(d,g);this.strictDrawShape(b,0,0,c,e)};Y.prototype.strictDrawShape=function(b,d,g,c,e,f){var l=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=f&&f.size?f.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=f&&f.rectOutline?f.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),n=f&&f.indent?f.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),G=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),A=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,n)),u=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),p=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),B=f&&f.bottom?f.bottom:
+mxUtils.getValue(this.style,"rectOutline",this.rectOutline),n=f&&f.indent?f.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),G=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),A=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,n)),u=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),B=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),p=f&&f.bottom?f.bottom:
mxUtils.getValue(this.style,"bottom",!0),x=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),I=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),y=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),z=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),S=f&&f.fillColor?f.fillColor:
-mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var C=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),L=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),ca=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),V=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),Da=f&&f.opacity?f.opacity:
-mxUtils.getValue(this.style,"opacity","100"),va=Math.max(0,Math.min(50,m));f=Y.prototype;b.setDashed(G);A&&""!=A&&b.setDashPattern(A);b.setStrokeWidth(C);m=Math.min(.5*e,.5*c,m);k||(m=va*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(n=Math.min(v*Math.min(c,e)/100));n=Math.min(n,.5*Math.min(c,e)-m);(u||p||B||x)&&"frame"!=q&&(b.begin(),u?f.moveNW(b,d,g,c,e,l,I,m,x):b.moveTo(0,0),u&&f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),p&&f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,
-c,e,l,y,m,B),B&&f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),x&&f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(L),G=k=Da,"none"==L&&(k=0),"none"==ca&&(G=0),b.setGradient(L,ca,0,0,c,e,V,k,G),b.begin(),u?f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x):b.moveTo(n,0),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),x&&B&&f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),B&&p&&f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,
-d,g,c,e,l,t,m,n,u,p),p&&u&&f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),u&&x&&f.paintNWInner(b,d,g,c,e,l,I,m,n),b.fill(),"none"==S&&(b.begin(),f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,p,B,x),b.stroke()));u||p||B||!x?u||p||!B||x?!u&&!p&&B&&x?"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,
-d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),b.close(),b.fillAndStroke()):u||!p||B||x?!u&&p&&!B&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==
-q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x)),b.stroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),b.close(),b.fillAndStroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,
-l,y,m,B),f.lineSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u&&p&&B&&!x?"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,
-d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u&&p&&B&&x?"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,
-d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,
-d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u||p||B||x?u&&!p&&!B&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x)),b.stroke()):
-(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.lineNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),b.close(),b.fillAndStroke()):u&&!p&&B&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke(),b.begin(),
-f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.lineNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke(),b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),b.close(),b.fillAndStroke()):
-u&&!p&&B&&x?"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,
-m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.lineNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),b.close(),b.fillAndStroke()):u&&p&&!B&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,
-p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.lineSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,
-c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):u&&p&&!B&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x)),b.stroke()):
-(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.lineSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),b.close(),b.fillAndStroke()):u&&p&&B&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,
-x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,
-m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):u&&p&&B&&x&&("frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,
-u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,
-e,l,z,m,n,B,x),b.close()),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,
-e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),b.close(),b.fillAndStroke())):"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.lineNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,
-e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.lineSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&
-(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,B),f.paintLeft(b,
-d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),b.close(),b.fillAndStroke());b.begin();f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,p,B,x);b.stroke()};Y.prototype.moveNW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,0):b.moveTo(0,m)};Y.prototype.moveNE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(c,0):b.moveTo(c-m,0)};Y.prototype.moveSE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&
+mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var C=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),M=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),ca=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),V=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),Da=f&&f.opacity?f.opacity:
+mxUtils.getValue(this.style,"opacity","100"),va=Math.max(0,Math.min(50,m));f=Y.prototype;b.setDashed(G);A&&""!=A&&b.setDashPattern(A);b.setStrokeWidth(C);m=Math.min(.5*e,.5*c,m);k||(m=va*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(n=Math.min(v*Math.min(c,e)/100));n=Math.min(n,.5*Math.min(c,e)-m);(u||B||p||x)&&"frame"!=q&&(b.begin(),u?f.moveNW(b,d,g,c,e,l,I,m,x):b.moveTo(0,0),u&&f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),B&&f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,
+c,e,l,y,m,p),p&&f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),x&&f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(M),G=k=Da,"none"==M&&(k=0),"none"==ca&&(G=0),b.setGradient(M,ca,0,0,c,e,V,k,G),b.begin(),u?f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x):b.moveTo(n,0),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),x&&p&&f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),p&&B&&f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,
+d,g,c,e,l,t,m,n,u,B),B&&u&&f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),u&&x&&f.paintNWInner(b,d,g,c,e,l,I,m,n),b.fill(),"none"==S&&(b.begin(),f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,B,p,x),b.stroke()));u||B||p||!x?u||B||!p||x?!u&&!B&&p&&x?"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,
+d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),b.close(),b.fillAndStroke()):u||!B||p||x?!u&&B&&!p&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==
+q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x)),b.stroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),b.close(),b.fillAndStroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,
+l,y,m,p),f.lineSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),b.close(),b.fillAndStroke()):!u&&B&&p&&!x?"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,
+d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),b.close(),b.fillAndStroke()):!u&&B&&p&&x?"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,
+d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,
+d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),b.close(),b.fillAndStroke()):!u||B||p||x?u&&!B&&!p&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x)),b.stroke()):
+(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.lineNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),b.close(),b.fillAndStroke()):u&&!B&&p&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke(),b.begin(),
+f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.lineNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke(),b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),b.close(),b.fillAndStroke()):
+u&&!B&&p&&x?"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,
+m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.lineNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),b.close(),b.fillAndStroke()):u&&B&&!p&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,
+B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.lineSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,
+c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):u&&B&&!p&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x)),b.stroke()):
+(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.lineSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),b.close(),b.fillAndStroke()):u&&B&&p&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,
+x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,
+m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):u&&B&&p&&x&&("frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,
+u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,
+e,l,z,m,n,p,x),b.close()),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,
+e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),b.close(),b.fillAndStroke())):"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.lineNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,
+e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.lineSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&
+(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,p),f.paintLeft(b,
+d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),b.close(),b.fillAndStroke());b.begin();f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,B,p,x);b.stroke()};Y.prototype.moveNW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,0):b.moveTo(0,m)};Y.prototype.moveNE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(c,0):b.moveTo(c-m,0)};Y.prototype.moveSE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&
"square"==f||!k?b.moveTo(c,e):b.moveTo(c,e-m)};Y.prototype.moveSW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,e):b.moveTo(m,e)};Y.prototype.paintNW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(m,0);else b.lineTo(0,0)};Y.prototype.paintTop=
function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(c,0):b.lineTo(c-m,0)};Y.prototype.paintNE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c,m);else b.lineTo(c,0)};Y.prototype.paintRight=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==
l&&"square"==f||!k?b.lineTo(c,e):b.lineTo(c,e-m)};Y.prototype.paintLeft=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,0):b.lineTo(0,m)};Y.prototype.paintSE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-m,e);else b.lineTo(c,
e)};Y.prototype.paintBottom=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,e):b.lineTo(m,e)};Y.prototype.paintSW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(0,e-m);else b.lineTo(0,e)};Y.prototype.paintNWInner=function(b,d,g,
-c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};Y.prototype.paintTopInner=function(b,d,g,c,e,f,l,m,k,n,q){n||q?!n&&q?b.lineTo(0,k):n&&!q?b.lineTo(k,0):n?"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&
+c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};Y.prototype.paintTopInner=function(b,d,g,c,e,f,l,m,k,q,n){q||n?!q&&n?b.lineTo(0,k):q&&!n?b.lineTo(k,0):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&
"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(m+.5*k,k):b.lineTo(m+k,k):b.lineTo(0,k):b.lineTo(0,0)};Y.prototype.paintNEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-m-.5*k,k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-m-k,k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-m-.5*k,k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,m+k),b.lineTo(c-m-k,k)};Y.prototype.paintRightInner=
-function(b,d,g,c,e,f,l,m,k,n,q){n||q?!n&&q?b.lineTo(c-k,0):n&&!q?b.lineTo(c,k):n?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};Y.prototype.paintLeftInner=function(b,d,g,c,e,f,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,e):n&&!q?b.lineTo(0,e-k):n?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
+function(b,d,g,c,e,f,l,m,k,q,n){q||n?!q&&n?b.lineTo(c-k,0):q&&!n?b.lineTo(c,k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};Y.prototype.paintLeftInner=function(b,d,g,c,e,f,l,m,k,q,n){q||n?!q&&n?b.lineTo(k,e):q&&!n?b.lineTo(0,e-k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
l&&"snip"==f?b.lineTo(k,e-m-.5*k):b.lineTo(k,e-m-k):b.lineTo(k,e):b.lineTo(0,e)};Y.prototype.paintSEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-k,e-m-.5*k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-k,e-m-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-k,e-m-.5*k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,e-m-k),b.lineTo(c-k,e-m-k)};Y.prototype.paintBottomInner=function(b,d,g,c,
-e,f,l,m,k,n,q){n||q?!n&&q?b.lineTo(c,e-k):n&&!q?b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==f||!n?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};Y.prototype.paintSWInner=function(b,d,g,c,e,f,l,m,k,n){if(!n)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==f)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==
-l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};Y.prototype.moveSWInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,
-e-m-k):b.moveTo(0,e-k)};Y.prototype.lineSWInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};Y.prototype.moveSEInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==
-f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};Y.prototype.lineSEInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
-k,e)};Y.prototype.moveNEInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f||n?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};Y.prototype.lineNEInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f||n?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
-l&&"snip"==f?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};Y.prototype.moveNWInner=function(b,d,g,c,e,f,l,m,k,n,q){n||q?!n&&q?b.moveTo(k,0):n&&!q?b.moveTo(0,k):"square"==l||"default"==l&&"square"==f?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,m+k):b.moveTo(0,
-0)};Y.prototype.lineNWInner=function(b,d,g,c,e,f,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,0):n&&!q?b.lineTo(0,k):"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,m+k):b.lineTo(0,0)};Y.prototype.paintFolds=function(b,d,g,c,e,f,l,m,k,n,q,G,u,v,p){if("fold"==f||"fold"==l||"fold"==m||"fold"==k||"fold"==n)("fold"==l||"default"==
-l&&"fold"==f)&&G&&p&&(b.moveTo(0,q),b.lineTo(q,q),b.lineTo(q,0)),("fold"==m||"default"==m&&"fold"==f)&&G&&u&&(b.moveTo(c-q,0),b.lineTo(c-q,q),b.lineTo(c,q)),("fold"==k||"default"==k&&"fold"==f)&&v&&u&&(b.moveTo(c-q,e),b.lineTo(c-q,e-q),b.lineTo(c,e-q)),("fold"==n||"default"==n&&"fold"==f)&&v&&p&&(b.moveTo(0,e-q),b.lineTo(q,e-q),b.lineTo(q,e))};mxCellRenderer.registerShape(Y.prototype.cst.RECT2,Y);Y.prototype.constraints=null;mxUtils.extend(Fa,mxConnector);Fa.prototype.origPaintEdgeShape=Fa.prototype.paintEdgeShape;
+e,f,l,m,k,q,n){q||n?!q&&n?b.lineTo(c,e-k):q&&!n?b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==f||!q?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};Y.prototype.paintSWInner=function(b,d,g,c,e,f,l,m,k,q){if(!q)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==f)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==
+l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};Y.prototype.moveSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,
+e-m-k):b.moveTo(0,e-k)};Y.prototype.lineSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};Y.prototype.moveSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==
+f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};Y.prototype.lineSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
+k,e)};Y.prototype.moveNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};Y.prototype.lineNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
+l&&"snip"==f?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};Y.prototype.moveNWInner=function(b,d,g,c,e,f,l,m,k,q,n){q||n?!q&&n?b.moveTo(k,0):q&&!n?b.moveTo(0,k):"square"==l||"default"==l&&"square"==f?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,m+k):b.moveTo(0,
+0)};Y.prototype.lineNWInner=function(b,d,g,c,e,f,l,m,k,q,n){q||n?!q&&n?b.lineTo(k,0):q&&!n?b.lineTo(0,k):"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,m+k):b.lineTo(0,0)};Y.prototype.paintFolds=function(b,d,g,c,e,f,l,m,k,q,n,G,u,v,B){if("fold"==f||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==
+l&&"fold"==f)&&G&&B&&(b.moveTo(0,n),b.lineTo(n,n),b.lineTo(n,0)),("fold"==m||"default"==m&&"fold"==f)&&G&&u&&(b.moveTo(c-n,0),b.lineTo(c-n,n),b.lineTo(c,n)),("fold"==k||"default"==k&&"fold"==f)&&v&&u&&(b.moveTo(c-n,e),b.lineTo(c-n,e-n),b.lineTo(c,e-n)),("fold"==q||"default"==q&&"fold"==f)&&v&&B&&(b.moveTo(0,e-n),b.lineTo(n,e-n),b.lineTo(n,e))};mxCellRenderer.registerShape(Y.prototype.cst.RECT2,Y);Y.prototype.constraints=null;mxUtils.extend(Fa,mxConnector);Fa.prototype.origPaintEdgeShape=Fa.prototype.paintEdgeShape;
Fa.prototype.paintEdgeShape=function(b,d,g){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,f=b.state.fixDash;Fa.prototype.origPaintEdgeShape.apply(this,[b,c,g]);3<=b.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(b.setStrokeColor(c),b.setStrokeWidth(b.state.strokeWidth-2),b.setDashed(e,f),Fa.prototype.origPaintEdgeShape.apply(this,[b,d,g])))};mxCellRenderer.registerShape("filledEdge",Fa);"undefined"!==typeof StyleFormatPanel&&function(){var b=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.editorUi.getSelectionState(),g=b.apply(this,arguments);"umlFrame"==d.style.shape&&g.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return g}}();mxMarker.addMarker("dash",function(b,d,g,c,e,f,l,m,k,n){var q=e*(l+k+1),G=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-G/2,c.y-G/2+q/2);b.lineTo(c.x+G/2-3*q/2,c.y-3*G/2-q/2);b.stroke()}});mxMarker.addMarker("box",
-function(b,d,g,c,e,f,l,m,k,n){var q=e*(l+k+1),G=f*(l+k+1),u=c.x+q/2,v=c.y+G/2;c.x-=q;c.y-=G;return function(){b.begin();b.moveTo(u-q/2-G/2,v-G/2+q/2);b.lineTo(u-q/2+G/2,v-G/2-q/2);b.lineTo(u+G/2-3*q/2,v-3*G/2-q/2);b.lineTo(u-G/2-3*q/2,v-3*G/2+q/2);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,g,c,e,f,l,m,k,n){var q=e*(l+k+1),G=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-G/2,c.y-G/2+q/2);b.lineTo(c.x+G/2-3*q/2,c.y-3*G/2-q/2);b.moveTo(c.x-q/2+G/2,c.y-
-G/2-q/2);b.lineTo(c.x-G/2-3*q/2,c.y-3*G/2+q/2);b.stroke()}});mxMarker.addMarker("circle",Na);mxMarker.addMarker("circlePlus",function(b,d,g,c,e,f,l,m,k,n){var q=c.clone(),G=Na.apply(this,arguments),u=e*(l+2*k),v=f*(l+2*k);return function(){G.apply(this,arguments);b.begin();b.moveTo(q.x-e*k,q.y-f*k);b.lineTo(q.x-2*u+e*k,q.y-2*v+f*k);b.moveTo(q.x-u-v+f*k,q.y-v+u-e*k);b.lineTo(q.x+v-u-f*k,q.y-v-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,g,c,e,f,l,m,k,q){var n=e*(l+k+1),G=f*(l+
-k+1),u=c.clone();c.x-=n;c.y-=G;return function(){b.begin();b.moveTo(u.x-G,u.y+n);b.quadTo(c.x-G,c.y+n,c.x,c.y);b.quadTo(c.x+G,c.y-n,u.x+G,u.y-n);b.stroke()}});mxMarker.addMarker("async",function(b,d,g,c,e,f,l,m,k,n){d=e*k*1.118;g=f*k*1.118;e*=l+k;f*=l+k;var q=c.clone();q.x-=d;q.y-=g;c.x+=1*-e-d;c.y+=1*-f-g;return function(){b.begin();b.moveTo(q.x,q.y);m?b.lineTo(q.x-e-f/2,q.y-f+e/2):b.lineTo(q.x+f/2-e,q.y-f-e/2);b.lineTo(q.x-e,q.y-f);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
+StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.editorUi.getSelectionState(),g=b.apply(this,arguments);"umlFrame"==d.style.shape&&g.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return g}}();mxMarker.addMarker("dash",function(b,d,g,c,e,f,l,m,k,q){var n=e*(l+k+1),G=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-n/2-G/2,c.y-G/2+n/2);b.lineTo(c.x+G/2-3*n/2,c.y-3*G/2-n/2);b.stroke()}});mxMarker.addMarker("box",
+function(b,d,g,c,e,f,l,m,k,q){var n=e*(l+k+1),G=f*(l+k+1),u=c.x+n/2,v=c.y+G/2;c.x-=n;c.y-=G;return function(){b.begin();b.moveTo(u-n/2-G/2,v-G/2+n/2);b.lineTo(u-n/2+G/2,v-G/2-n/2);b.lineTo(u+G/2-3*n/2,v-3*G/2-n/2);b.lineTo(u-G/2-3*n/2,v-3*G/2+n/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,g,c,e,f,l,m,k,q){var n=e*(l+k+1),G=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-n/2-G/2,c.y-G/2+n/2);b.lineTo(c.x+G/2-3*n/2,c.y-3*G/2-n/2);b.moveTo(c.x-n/2+G/2,c.y-
+G/2-n/2);b.lineTo(c.x-G/2-3*n/2,c.y-3*G/2+n/2);b.stroke()}});mxMarker.addMarker("circle",Na);mxMarker.addMarker("circlePlus",function(b,d,g,c,e,f,l,m,k,q){var n=c.clone(),G=Na.apply(this,arguments),u=e*(l+2*k),v=f*(l+2*k);return function(){G.apply(this,arguments);b.begin();b.moveTo(n.x-e*k,n.y-f*k);b.lineTo(n.x-2*u+e*k,n.y-2*v+f*k);b.moveTo(n.x-u-v+f*k,n.y-v+u-e*k);b.lineTo(n.x+v-u-f*k,n.y-v-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,g,c,e,f,l,m,k,n){var q=e*(l+k+1),G=f*(l+
+k+1),u=c.clone();c.x-=q;c.y-=G;return function(){b.begin();b.moveTo(u.x-G,u.y+q);b.quadTo(c.x-G,c.y+q,c.x,c.y);b.quadTo(c.x+G,c.y-q,u.x+G,u.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,g,c,e,f,l,m,k,n){d=e*k*1.118;g=f*k*1.118;e*=l+k;f*=l+k;var q=c.clone();q.x-=d;q.y-=g;c.x+=1*-e-d;c.y+=1*-f-g;return function(){b.begin();b.moveTo(q.x,q.y);m?b.lineTo(q.x-e-f/2,q.y-f+e/2):b.lineTo(q.x+f/2-e,q.y-f-e/2);b.lineTo(q.x-e,q.y-f);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
function(b){b=null!=b?b:2;return function(d,g,c,e,f,l,m,k,q,n){f*=m+q;l*=m+q;var G=e.clone();return function(){d.begin();d.moveTo(G.x,G.y);k?d.lineTo(G.x-f-l/b,G.y-l+f/b):d.lineTo(G.x+l/b-f,G.y-l-f/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var $a=function(b,d,g){return Ma(b,["width"],d,function(d,c,e,f,l){l=b.shape.getEdgeWidth()*b.view.scale+g;return new mxPoint(f.x+c*d/4+e*l/2,f.y+e*d/4-c*l/2)},function(d,c,e,f,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));b.style.width=
Math.round(2*d)/b.view.scale-g})},Ma=function(b,d,g,c,e){return ga(b,d,function(d){var e=b.absolutePoints,f=e.length-1;d=b.view.translate;var l=b.view.scale,m=g?e[0]:e[f],e=g?e[1]:e[f-1],f=e.x-m.x,k=e.y-m.y,q=Math.sqrt(f*f+k*k),m=c.call(this,q,f/q,k/q,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,f){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,q=g?l[0]:l[m],l=g?l[1]:l[m-1],m=l.x-q.x,n=l.y-q.y,G=Math.sqrt(m*m+n*n);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,
G,m/G,n/G,q,l,c,f)})},Ha=function(b){return function(d){return[ga(d,["arrowWidth","arrowSize"],function(d){var g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",da.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",da.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-g)*d.height/2)},function(d,g){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-g.y)/d.height*2));this.state.style.arrowSize=Math.max(0,
@@ -2890,90 +2893,90 @@ c*(g?1:d.width))),d.getCenterY())},function(b,d,c){b=null!=e&&"0"!=mxUtils.getVa
e),g.y+c)},function(d,g,c){"1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(d.width,2*(d.x+d.width-g.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-g.x+d.x)/Math.min(d.width,d.height))))})},ga=function(b,d,g,c,e,f,l){var m=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);m.execute=function(b){for(var g=0;g<d.length;g++)this.copyStyle(d[g]);
l&&l(b)};m.getPosition=g;m.setPosition=c;m.ignoreGrid=null!=e?e:!0;if(f){var k=m.positionChanged;m.positionChanged=function(){k.apply(this,arguments);b.view.invalidate(this.state.cell);b.view.validate()}}return m},Pa={link:function(b){return[$a(b,!0,10),$a(b,!1,10)]},flexArrow:function(b){var d=b.view.graph.gridSize/b.view.scale,g=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(g.push(Ma(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
!0,function(d,g,c,e,f){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)-g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/
-3)/100/b.view.scale;b.style.width=Math.round(2*g)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),g.push(Ma(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,
-g,c,e,f){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)-g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/
-100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*g)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(b.style.startWidth)-
-parseFloat(b.style.endWidth))<d&&(b.style.startWidth=b.style.endWidth))})));mxUtils.getValue(b.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(g.push(Ma(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,g,c,e,f){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(f+b.shape.strokewidth*
-b.view.scale)+g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*g)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<
-d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),g.push(Ma(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,g,c,e,f){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)+g*d/2)},function(g,c,e,f,l,m,k){g=
-Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*g)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-
-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return g},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var g=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(Ga(b,g/2))}d.push(ga(b,[mxConstants.STYLE_STARTSIZE],
-function(d){var g=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),d.y+Math.max(0,Math.min(d.height,g))):new mxPoint(d.x+Math.max(0,Math.min(d.width,g)),d.getCenterY())},function(d,g){b.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,g.y-d.y))):Math.round(Math.max(0,
-Math.min(d.width,g.x-d.x)))},!1,null,function(d){if(mxEvent.isControlDown(d.getEvent())&&(d=b.view.graph,d.isTableRow(b.cell)||d.isTableCell(b.cell))){for(var g=d.getSwimlaneDirection(b.style),c=d.model.getParent(b.cell),c=d.model.getChildCells(c,!0),e=[],f=0;f<c.length;f++)c[f]!=b.cell&&d.isSwimlane(c[f])&&d.getSwimlaneDirection(d.getCurrentCellStyle(c[f]))==g&&e.push(c[f]);d.setCellStyles(mxConstants.STYLE_STARTSIZE,b.style[mxConstants.STYLE_STARTSIZE],e)}}));return d},label:La(),ext:La(),rectangle:La(),
-triangle:La(),rhombus:La(),umlLifeline:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},umlFrame:function(b){return[ga(b,["width","height"],function(b){var d=Math.max(V.prototype.corner,Math.min(b.width,mxUtils.getValue(this.state.style,"width",V.prototype.width))),
-g=Math.max(1.5*V.prototype.corner,Math.min(b.height,mxUtils.getValue(this.state.style,"height",V.prototype.height)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.width=Math.round(Math.max(V.prototype.corner,Math.min(b.width,d.x-b.x)));this.state.style.height=Math.round(Math.max(1.5*V.prototype.corner,Math.min(b.height,d.y-b.y)))},!1)]},process:function(b){var d=[ga(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),g=parseFloat(mxUtils.getValue(this.state.style,
-"size",J.prototype.size));return d?new mxPoint(b.x+g,b.y+b.height/4):new mxPoint(b.x+b.width*g,b.y+b.height/4)},function(b,d){var g="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*b.width,d.x-b.x)):Math.max(0,Math.min(.5,(d.x-b.x)/b.width));this.state.style.size=g},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},cross:function(b){return[ga(b,["size"],function(b){var d=Math.min(b.width,b.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"size",Ca.prototype.size)))*d/2;return new mxPoint(b.getCenterX()-d,b.getCenterY()-d)},function(b,d){var g=Math.min(b.width,b.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,b.getCenterY()-d.y)/g*2,Math.max(0,b.getCenterX()-d.x)/g*2)))})]},note:function(b){return[ga(b,["size"],function(b){var g=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size)))));return new mxPoint(b.x+b.width-g,b.y+g)},function(b,d){this.state.style.size=
-Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},note2:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size)))));return new mxPoint(b.x+b.width-d,b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},manualInput:function(b){var d=[ga(b,["size"],function(b){var d=
-Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",X.prototype.size)));return new mxPoint(b.x+b.width/4,b.y+3*d/4)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,4*(d.y-b.y)/3)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},dataStorage:function(b){return[ga(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),g=parseFloat(mxUtils.getValue(this.state.style,"size",d?ha.prototype.fixedSize:
-ha.prototype.size));return new mxPoint(b.x+b.width-g*(d?1:b.width),b.getCenterY())},function(b,d){var g="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(b.width,b.x+b.width-d.x)):Math.max(0,Math.min(1,(b.x+b.width-d.x)/b.width));this.state.style.size=g},!1)]},callout:function(b){var d=[ga(b,["size","position"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",K.prototype.size))),g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"position",K.prototype.position)));mxUtils.getValue(this.state.style,"base",K.prototype.base);return new mxPoint(b.x+g*b.width,b.y+b.height-d)},function(b,d){mxUtils.getValue(this.state.style,"base",K.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(b.height,b.y+b.height-d.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ga(b,["position2"],function(b){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",K.prototype.position2)));
-return new mxPoint(b.x+d*b.width,b.y+b.height)},function(b,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ga(b,["base"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",K.prototype.size))),g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",K.prototype.position))),c=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"base",K.prototype.base)));return new mxPoint(b.x+Math.min(b.width,
-g*b.width+c),b.y+b.height-d)},function(b,d){var g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",K.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(b.width,d.x-b.x-g*b.width)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},internalStorage:function(b){var d=[ga(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",ma.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,
-"dy",ma.prototype.dy)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},module:function(b){return[ga(b,["jettyWidth","jettyHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"jettyWidth",la.prototype.jettyWidth))),g=Math.max(0,Math.min(b.height,
-mxUtils.getValue(this.state.style,"jettyHeight",la.prototype.jettyHeight)));return new mxPoint(b.x+d/2,b.y+2*g)},function(b,d){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y))/2)})]},corner:function(b){return[ga(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",qa.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,
-"dy",qa.prototype.dy)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},tee:function(b){return[ga(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",ia.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",ia.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+g)},function(b,
-d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Ha(1),doubleArrow:Ha(.5),folder:function(b){return[ga(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"tabWidth",u.prototype.tabWidth))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",u.prototype.tabHeight)));mxUtils.getValue(this.state.style,
-"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+g)},function(b,d){var g=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(g=b.width-g);this.state.style.tabWidth=Math.round(g);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",F.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},tape:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",x.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ga(b,
-["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",l.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Xa(q.prototype.size),cylinder3:Xa(m.prototype.size),offPageConnector:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ta.prototype.size))));
-return new mxPoint(b.getCenterX(),b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},"mxgraph.basic.rect":function(b){var d=[Graph.createHandle(b,["size"],function(b){var d=Math.max(0,Math.min(b.width/2,b.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(b.x+d,b.y+d)},function(b,d){this.state.style.size=Math.round(100*Math.max(0,Math.min(b.height/2,b.width/2,d.x-b.x)))/100})];b=Graph.createHandle(b,
-["indent"],function(b){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(b.x+.75*b.width,b.y+d*b.height/200)},function(b,d){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(d.y-b.y)/b.height)))/100});d.push(b);return d},step:Oa(M.prototype.size,!0,null,!0,M.prototype.fixedSize),hexagon:Oa(Z.prototype.size,!0,.5,!0,Z.prototype.fixedSize),curlyBracket:Oa(D.prototype.size,!1),display:Oa(wa.prototype.size,!1),cube:Va(1,
-e.prototype.size,!1),card:Va(.5,y.prototype.size,!0),loopLimit:Va(.5,ea.prototype.size,!0),trapezoid:Ya(.5,z.prototype.size,z.prototype.fixedSize),parallelogram:Ya(1,H.prototype.size,H.prototype.fixedSize)};Graph.createHandle=ga;Graph.handleFactory=Pa;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&
-null==mxStencilRegistry.getStencil(d)?d=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(d=mxConstants.SHAPE_SWIMLANE);d=Pa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Pa[mxConstants.SHAPE_RECTANGLE]);null!=d&&(d=d(this.state),null!=d&&(b=null==b?d:b.concat(d)))}return b};mxEdgeHandler.prototype.createCustomHandles=function(){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&null==mxStencilRegistry.getStencil(b)&&(b=mxConstants.SHAPE_CONNECTOR);
-b=Pa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Qa=new mxPoint(1,0),Ra=new mxPoint(1,0),Ha=mxUtils.toRadians(-30),Qa=mxUtils.getRotatedPoint(Qa,Math.cos(Ha),Math.sin(Ha)),Ha=mxUtils.toRadians(-150),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ha),Math.sin(Ha));mxEdgeStyle.IsometricConnector=function(b,d,g,c,e){var f=b.view;c=null!=c&&0<c.length?c[0]:null;var l=b.absolutePoints,m=l[0],l=l[l.length-1];null!=c&&(c=f.transformControlPoint(b,c));null==
-m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=g&&(l=new mxPoint(g.getCenterX(),g.getCenterY()));var k=Qa.x,q=Qa.y,n=Ra.x,G=Ra.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,g){b-=v.x;var c=d-v.y;d=(G*b-n*c)/(k*G-q*n);b=(q*b-k*c)/(q*n-k*G);u?(g&&(v=new mxPoint(v.x+k*d,v.y+q*d),e.push(v)),v=new mxPoint(v.x+n*b,v.y+G*b)):(g&&(v=new mxPoint(v.x+n*b,v.y+G*b),e.push(v)),v=new mxPoint(v.x+k*d,v.y+q*d));e.push(v)};var v=m;null==
-c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var g=new mxElbowEdgeHandler(b);g.snapToTerminals=!1;return g}return fb.apply(this,arguments)};f.prototype.constraints=[];p.prototype.getConstraints=function(b,d,g){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-
-c)/2,c=Math.min(d,g/(.5+c));d=(d-c)/2;g=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,g+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,g+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.75*c));return b};l.prototype.getConstraints=
-function(b,d,g){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,c=Math.min(d*Math.tan(c),.5*g);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));return b};K.prototype.getConstraints=function(b,d,g){b=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var c=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g-c)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-c)));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),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(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(0,1),!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(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];Ja.prototype.constraints=mxRectangleShape.prototype.constraints;
-mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;L.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;d.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};y.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};e.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,
-"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(d+c),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-c)));return b};m.prototype.getConstraints=function(b,d,g){b=[];d=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d+.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(1,
-0),!1,null,0,d+.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,g-d-.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-d-.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-d));b.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-d));return b};u.prototype.getConstraints=
-function(b,d,g){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(b.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e))):(b.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,.25*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,.75*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g));b.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return b};ma.prototype.constraints=mxRectangleShape.prototype.constraints;ha.prototype.constraints=mxRectangleShape.prototype.constraints;ya.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;
-xa.prototype.constraints=mxEllipse.prototype.constraints;Aa.prototype.constraints=mxEllipse.prototype.constraints;X.prototype.constraints=mxRectangleShape.prototype.constraints;Ka.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.getConstraints=function(b,d,g){b=[];var c=Math.min(d,g/2),e=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));return b};la.prototype.getConstraints=function(b,d,g){d=parseFloat(mxUtils.getValue(b,
-"jettyWidth",la.prototype.jettyWidth))/2;b=parseFloat(mxUtils.getValue(b,"jettyHeight",la.prototype.jettyHeight));var c=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,d),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,d),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(g-.5*b,1.5*b)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(g-.5*b,3.5*b))];g>5*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,d));g>8*b&&c.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1,null,d));g>15*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,d));return c};ea.prototype.constraints=mxRectangleShape.prototype.constraints;ta.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)];G.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)];ja.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,
-.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)];x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
-.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];M.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];oa.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)];H.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;F.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(b,d,g){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d+.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(d+c),.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d-.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return b};qa.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,g));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-1),!1));return b};T.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)];da.prototype.getConstraints=
-function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));return b};na.prototype.getConstraints=function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));return b};Ca.prototype.getConstraints=
-function(b,d,g){b=[];var c=Math.min(g,d),e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),c=(g-e)/2,f=c+e,l=(d-e)/2,e=l+e;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,0));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,e,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),c));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,c));return b};Q.prototype.constraints=null;ua.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)];P.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)];ka.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ra.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
-.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(b){this.editorUi=b;this.actions={};this.init()}
+3)/100/b.view.scale;b.style.width=Math.round(2*g)/b.view.scale;if(mxEvent.isShiftDown(k.getEvent())||mxEvent.isControlDown(k.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE];mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),g.push(Ma(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
+!0,function(d,g,c,e,f){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)-g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/
+3)/100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*g)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(k.getEvent())||mxEvent.isControlDown(k.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth;mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]),
+Math.abs(parseFloat(b.style.startWidth)-parseFloat(b.style.endWidth))<d&&(b.style.startWidth=b.style.endWidth))})));mxUtils.getValue(b.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(g.push(Ma(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,g,c,e,f){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*
+b.view.scale)-c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)+g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*g)/b.view.scale;if(mxEvent.isShiftDown(k.getEvent())||mxEvent.isControlDown(k.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE];mxEvent.isAltDown(k.getEvent())||
+Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),g.push(Ma(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,g,c,e,f){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*
+b.view.scale)-c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)+g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*g)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(k.getEvent())||mxEvent.isControlDown(k.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE],
+b.style.startWidth=b.style.endWidth;mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return g},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var g=parseFloat(mxUtils.getValue(b.style,
+mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(Ga(b,g/2))}d.push(ga(b,[mxConstants.STYLE_STARTSIZE],function(d){var g=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),d.y+Math.max(0,Math.min(d.height,g))):new mxPoint(d.x+Math.max(0,Math.min(d.width,g)),d.getCenterY())},function(d,g){b.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,
+mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,g.y-d.y))):Math.round(Math.max(0,Math.min(d.width,g.x-d.x)))},!1,null,function(d){var g=b.view.graph;if(!mxEvent.isShiftDown(d.getEvent())&&!mxEvent.isControlDown(d.getEvent())&&(g.isTableRow(b.cell)||g.isTableCell(b.cell))){d=g.getSwimlaneDirection(b.style);for(var c=g.model.getParent(b.cell),c=g.model.getChildCells(c,!0),e=[],f=0;f<c.length;f++)c[f]!=b.cell&&g.isSwimlane(c[f])&&g.getSwimlaneDirection(g.getCurrentCellStyle(c[f]))==
+d&&e.push(c[f]);g.setCellStyles(mxConstants.STYLE_STARTSIZE,b.style[mxConstants.STYLE_STARTSIZE],e)}}));return d},label:La(),ext:La(),rectangle:La(),triangle:La(),rhombus:La(),umlLifeline:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},umlFrame:function(b){return[ga(b,
+["width","height"],function(b){var d=Math.max(V.prototype.corner,Math.min(b.width,mxUtils.getValue(this.state.style,"width",V.prototype.width))),g=Math.max(1.5*V.prototype.corner,Math.min(b.height,mxUtils.getValue(this.state.style,"height",V.prototype.height)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.width=Math.round(Math.max(V.prototype.corner,Math.min(b.width,d.x-b.x)));this.state.style.height=Math.round(Math.max(1.5*V.prototype.corner,Math.min(b.height,d.y-b.y)))},!1)]},
+process:function(b){var d=[ga(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),g=parseFloat(mxUtils.getValue(this.state.style,"size",J.prototype.size));return d?new mxPoint(b.x+g,b.y+b.height/4):new mxPoint(b.x+b.width*g,b.y+b.height/4)},function(b,d){var g="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*b.width,d.x-b.x)):Math.max(0,Math.min(.5,(d.x-b.x)/b.width));this.state.style.size=g},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,
+!1)&&d.push(Ga(b));return d},cross:function(b){return[ga(b,["size"],function(b){var d=Math.min(b.width,b.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",Ca.prototype.size)))*d/2;return new mxPoint(b.getCenterX()-d,b.getCenterY()-d)},function(b,d){var g=Math.min(b.width,b.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,b.getCenterY()-d.y)/g*2,Math.max(0,b.getCenterX()-d.x)/g*2)))})]},note:function(b){return[ga(b,["size"],function(b){var g=Math.max(0,
+Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size)))));return new mxPoint(b.x+b.width-g,b.y+g)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},note2:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size)))));return new mxPoint(b.x+b.width-d,b.y+d)},
+function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},manualInput:function(b){var d=[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",X.prototype.size)));return new mxPoint(b.x+b.width/4,b.y+3*d/4)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,4*(d.y-b.y)/3)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));
+return d},dataStorage:function(b){return[ga(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),g=parseFloat(mxUtils.getValue(this.state.style,"size",d?ha.prototype.fixedSize:ha.prototype.size));return new mxPoint(b.x+b.width-g*(d?1:b.width),b.getCenterY())},function(b,d){var g="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(b.width,b.x+b.width-d.x)):Math.max(0,Math.min(1,(b.x+b.width-d.x)/b.width));this.state.style.size=g},!1)]},callout:function(b){var d=
+[ga(b,["size","position"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",K.prototype.size))),g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",K.prototype.position)));mxUtils.getValue(this.state.style,"base",K.prototype.base);return new mxPoint(b.x+g*b.width,b.y+b.height-d)},function(b,d){mxUtils.getValue(this.state.style,"base",K.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(b.height,b.y+b.height-d.y)));this.state.style.position=
+Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ga(b,["position2"],function(b){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",K.prototype.position2)));return new mxPoint(b.x+d*b.width,b.y+b.height)},function(b,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ga(b,["base"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",K.prototype.size))),g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"position",K.prototype.position))),c=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"base",K.prototype.base)));return new mxPoint(b.x+Math.min(b.width,g*b.width+c),b.y+b.height-d)},function(b,d){var g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",K.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(b.width,d.x-b.x-g*b.width)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},internalStorage:function(b){var d=
+[ga(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",ma.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",ma.prototype.dy)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},module:function(b){return[ga(b,
+["jettyWidth","jettyHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"jettyWidth",la.prototype.jettyWidth))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"jettyHeight",la.prototype.jettyHeight)));return new mxPoint(b.x+d/2,b.y+2*g)},function(b,d){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y))/2)})]},corner:function(b){return[ga(b,
+["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",qa.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",qa.prototype.dy)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},tee:function(b){return[ga(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,
+"dx",ia.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",ia.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+g)},function(b,d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Ha(1),doubleArrow:Ha(.5),folder:function(b){return[ga(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,
+"tabWidth",u.prototype.tabWidth))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",u.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+g)},function(b,d){var g=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(g=b.width-g);this.state.style.tabWidth=Math.round(g);this.state.style.tabHeight=
+Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",F.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},tape:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",x.prototype.size))));
+return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ga(b,["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",l.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Xa(q.prototype.size),cylinder3:Xa(m.prototype.size),
+offPageConnector:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ta.prototype.size))));return new mxPoint(b.getCenterX(),b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},"mxgraph.basic.rect":function(b){var d=[Graph.createHandle(b,["size"],function(b){var d=Math.max(0,Math.min(b.width/2,b.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));
+return new mxPoint(b.x+d,b.y+d)},function(b,d){this.state.style.size=Math.round(100*Math.max(0,Math.min(b.height/2,b.width/2,d.x-b.x)))/100})];b=Graph.createHandle(b,["indent"],function(b){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(b.x+.75*b.width,b.y+d*b.height/200)},function(b,d){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(d.y-b.y)/b.height)))/100});d.push(b);return d},step:Oa(L.prototype.size,!0,null,
+!0,L.prototype.fixedSize),hexagon:Oa(Z.prototype.size,!0,.5,!0,Z.prototype.fixedSize),curlyBracket:Oa(D.prototype.size,!1),display:Oa(wa.prototype.size,!1),cube:Va(1,e.prototype.size,!1),card:Va(.5,y.prototype.size,!0),loopLimit:Va(.5,ea.prototype.size,!0),trapezoid:Ya(.5,z.prototype.size,z.prototype.fixedSize),parallelogram:Ya(1,H.prototype.size,H.prototype.fixedSize)};Graph.createHandle=ga;Graph.handleFactory=Pa;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=
+function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&null==mxStencilRegistry.getStencil(d)?d=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(d=mxConstants.SHAPE_SWIMLANE);d=Pa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Pa[mxConstants.SHAPE_RECTANGLE]);null!=d&&(d=d(this.state),null!=d&&(b=null==b?d:b.concat(d)))}return b};mxEdgeHandler.prototype.createCustomHandles=
+function(){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&null==mxStencilRegistry.getStencil(b)&&(b=mxConstants.SHAPE_CONNECTOR);b=Pa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Qa=new mxPoint(1,0),Ra=new mxPoint(1,0),Ha=mxUtils.toRadians(-30),Qa=mxUtils.getRotatedPoint(Qa,Math.cos(Ha),Math.sin(Ha)),Ha=mxUtils.toRadians(-150),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ha),Math.sin(Ha));mxEdgeStyle.IsometricConnector=function(b,
+d,g,c,e){var f=b.view;c=null!=c&&0<c.length?c[0]:null;var l=b.absolutePoints,m=l[0],l=l[l.length-1];null!=c&&(c=f.transformControlPoint(b,c));null==m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=g&&(l=new mxPoint(g.getCenterX(),g.getCenterY()));var k=Qa.x,q=Qa.y,n=Ra.x,G=Ra.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,g){b-=v.x;var c=d-v.y;d=(G*b-n*c)/(k*G-q*n);b=(q*b-k*c)/(q*n-k*G);u?(g&&(v=new mxPoint(v.x+k*d,v.y+
+q*d),e.push(v)),v=new mxPoint(v.x+n*b,v.y+G*b)):(g&&(v=new mxPoint(v.x+n*b,v.y+G*b),e.push(v)),v=new mxPoint(v.x+k*d,v.y+q*d));e.push(v)};var v=m;null==c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var g=new mxElbowEdgeHandler(b);g.snapToTerminals=!1;return g}return fb.apply(this,
+arguments)};f.prototype.constraints=[];p.prototype.getConstraints=function(b,d,g){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-c)/2,c=Math.min(d,g/(.5+c));d=(d-c)/2;g=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,g+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d+.5*c,g+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.75*c));return b};l.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,c=Math.min(d*Math.tan(c),.5*g);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d,g-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));return b};K.prototype.getConstraints=function(b,d,g){b=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var c=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,
+"position",this.position));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d,.5*(g-c)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-c)));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),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(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(0,1),!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(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,
+.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];Ja.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;M.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;d.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,
+"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,
+1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};y.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),0));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,
+0),!1));return b};e.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-c)));return b};m.prototype.getConstraints=function(b,d,g){b=[];d=Math.max(0,Math.min(g,
+parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,
+1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d+.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d+.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,g-d-.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-d-.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,
+1),!1,null,0,.29*-d));b.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-d));return b};u.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(b.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e))):(b.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(d-c),e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.25*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+0,.25*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g));b.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return b};ma.prototype.constraints=mxRectangleShape.prototype.constraints;ha.prototype.constraints=
+mxRectangleShape.prototype.constraints;ya.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;xa.prototype.constraints=mxEllipse.prototype.constraints;Aa.prototype.constraints=mxEllipse.prototype.constraints;X.prototype.constraints=mxRectangleShape.prototype.constraints;Ka.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.getConstraints=function(b,d,g){b=[];var c=Math.min(d,g/2),e=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,
+"size",this.size)))*d);b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),g));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,e,g));return b};la.prototype.getConstraints=function(b,d,g){d=parseFloat(mxUtils.getValue(b,"jettyWidth",la.prototype.jettyWidth))/2;b=parseFloat(mxUtils.getValue(b,"jettyHeight",la.prototype.jettyHeight));var c=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,d),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,d),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(g-.5*b,1.5*b)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(g-
+.5*b,3.5*b))];g>5*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,d));g>8*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,d));g>15*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,d));return c};ea.prototype.constraints=mxRectangleShape.prototype.constraints;ta.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)];G.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)];ja.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,.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)];x.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)];L.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)];oa.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)];H.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;F.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(b,d,g){b=[];var c=Math.max(0,
+Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
+null,.75*d+.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),
+!1,null,.5*(d-c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d-.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return b};qa.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),
+!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,g));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));return b};T.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)];da.prototype.getConstraints=function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));return b};na.prototype.getConstraints=function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,
+parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),
+!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));return b};Ca.prototype.getConstraints=function(b,d,g){b=[];var c=Math.min(g,d),e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),c=(g-e)/2,f=c+e,l=(d-e)/2,e=l+e;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,l,0));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),f));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,l,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,c));return b};Q.prototype.constraints=null;ua.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)];O.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)];ka.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ra.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(b){this.editorUi=b;this.actions={};this.init()}
Actions.prototype.init=function(){function b(b){f.escape();b=f.deleteCells(f.getDeletableCells(f.getSelectionCells()),b);null!=b&&f.setSelectionCells(b)}function c(){if(!f.isSelectionEmpty()){f.getModel().beginUpdate();try{for(var b=f.getSelectionCells(),d=0;d<b.length;d++)f.cellLabelChanged(b[d],"")}finally{f.getModel().endUpdate()}}}var e=this.editorUi,k=e.editor,f=k.graph,p=function(){return Action.prototype.isEnabled.apply(this,arguments)&&f.isEnabled()};this.addAction("new...",function(){f.openLink(e.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";e.openFile()});this.addAction("smartFit",function(){f.popupMenuHandler.hideMenu();var b=f.view.scale,d=f.view.translate.x,c=f.view.translate.y;e.actions.get("resetView").funct();1E-5>Math.abs(b-f.view.scale)&&d==f.view.translate.x&&c==f.view.translate.y&&e.actions.get(f.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){f.isEnabled()&&(f.isSelectionEmpty()?e.actions.get("smartFit").funct():
f.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){e.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(b,d){try{var g=mxUtils.parseXml(b);k.graph.setSelectionCells(k.graph.importGraphModel(g.documentElement))}catch(m){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+m.message)}}));e.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=
@@ -3161,26 +3164,26 @@ Editor.createRoughCanvas=function(b){var d=rough.canvas({getContext:function(){r
c.filled?b.fill():b.stroke()};return d};(function(){function b(d,c,g){this.canvas=d;this.rc=c;this.shape=g;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.originalBegin=this.canvas.begin;this.canvas.begin=mxUtils.bind(this,b.prototype.begin);this.originalEnd=this.canvas.end;this.canvas.end=mxUtils.bind(this,b.prototype.end);this.originalRect=this.canvas.rect;this.canvas.rect=mxUtils.bind(this,b.prototype.rect);this.originalRoundrect=this.canvas.roundrect;this.canvas.roundrect=
mxUtils.bind(this,b.prototype.roundrect);this.originalEllipse=this.canvas.ellipse;this.canvas.ellipse=mxUtils.bind(this,b.prototype.ellipse);this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,b.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,b.prototype.moveTo);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,b.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,
b.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,b.prototype.arcTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,b.prototype.close);this.originalFill=this.canvas.fill;this.canvas.fill=mxUtils.bind(this,b.prototype.fill);this.originalStroke=this.canvas.stroke;this.canvas.stroke=mxUtils.bind(this,b.prototype.stroke);this.originalFillAndStroke=this.canvas.fillAndStroke;this.canvas.fillAndStroke=mxUtils.bind(this,b.prototype.fillAndStroke);
-this.path=[];this.passThrough=!1}b.prototype.moveOp="M";b.prototype.lineOp="L";b.prototype.quadOp="Q";b.prototype.curveOp="C";b.prototype.closeOp="Z";b.prototype.getStyle=function(b,d){var c=1;if(null!=this.shape.state){var g=this.shape.state.cell.id;if(null!=g)for(var e=0;e<g.length;e++)c=(c<<5)-c+g.charCodeAt(e)<<0}c={strokeWidth:this.canvas.state.strokeWidth,seed:c,preserveVertices:!0};g=this.rc.getDefaultOptions();b?c.stroke="none"===this.canvas.state.strokeColor?"transparent":this.canvas.state.strokeColor:
-delete c.stroke;e=null;(c.filled=d)?(c.fill="none"===this.canvas.state.fillColor?"":this.canvas.state.fillColor,e="none"===this.canvas.state.gradientColor?null:this.canvas.state.gradientColor):c.fill="";c.bowing=mxUtils.getValue(this.shape.style,"bowing",g.bowing);c.hachureAngle=mxUtils.getValue(this.shape.style,"hachureAngle",g.hachureAngle);c.curveFitting=mxUtils.getValue(this.shape.style,"curveFitting",g.curveFitting);c.roughness=mxUtils.getValue(this.shape.style,"jiggle",g.roughness);c.simplification=
+this.path=[];this.passThrough=!1}b.prototype.moveOp="M";b.prototype.lineOp="L";b.prototype.quadOp="Q";b.prototype.curveOp="C";b.prototype.closeOp="Z";b.prototype.getStyle=function(b,d){var c=1;if(null!=this.shape.state){var g=this.shape.state.cell.id;if(null!=g)for(var e=0;e<g.length;e++)c=(c<<5)-c+g.charCodeAt(e)<<0}c={strokeWidth:this.canvas.state.strokeWidth,seed:c,preserveVertices:!0};g=this.rc.getDefaultOptions();c.stroke=b?"none"===this.canvas.state.strokeColor?"transparent":this.canvas.state.strokeColor:
+"none";e=null;(c.filled=d)?(c.fill="none"===this.canvas.state.fillColor?"":this.canvas.state.fillColor,e="none"===this.canvas.state.gradientColor?null:this.canvas.state.gradientColor):c.fill="";c.bowing=mxUtils.getValue(this.shape.style,"bowing",g.bowing);c.hachureAngle=mxUtils.getValue(this.shape.style,"hachureAngle",g.hachureAngle);c.curveFitting=mxUtils.getValue(this.shape.style,"curveFitting",g.curveFitting);c.roughness=mxUtils.getValue(this.shape.style,"jiggle",g.roughness);c.simplification=
mxUtils.getValue(this.shape.style,"simplification",g.simplification);c.disableMultiStroke=mxUtils.getValue(this.shape.style,"disableMultiStroke",g.disableMultiStroke);c.disableMultiStrokeFill=mxUtils.getValue(this.shape.style,"disableMultiStrokeFill",g.disableMultiStrokeFill);var f=mxUtils.getValue(this.shape.style,"hachureGap",-1);c.hachureGap="auto"==f?-1:f;c.dashGap=mxUtils.getValue(this.shape.style,"dashGap",f);c.dashOffset=mxUtils.getValue(this.shape.style,"dashOffset",f);c.zigzagOffset=mxUtils.getValue(this.shape.style,
"zigzagOffset",f);f=mxUtils.getValue(this.shape.style,"fillWeight",-1);c.fillWeight="auto"==f?-1:f;f=mxUtils.getValue(this.shape.style,"fillStyle","auto");"auto"==f&&(f=mxUtils.hex2rgb(null!=this.shape.state?this.shape.state.view.graph.shapeBackgroundColor:Editor.isDarkMode()?Editor.darkColor:"#ffffff"),f=null!=c.fill&&(null!=e||null!=f&&c.fill==f)?"solid":g.fillStyle);c.fillStyle=f;return c};b.prototype.begin=function(){this.passThrough?this.originalBegin.apply(this.canvas,arguments):this.path=[]};
b.prototype.end=function(){this.passThrough&&this.originalEnd.apply(this.canvas,arguments)};b.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var b=2;b<arguments.length;b+=2)this.lastX=arguments[b-1],this.lastY=arguments[b],this.path.push(this.canvas.format(this.lastX)),this.path.push(this.canvas.format(this.lastY))};b.prototype.lineTo=function(b,d){this.passThrough?this.originalLineTo.apply(this.canvas,arguments):(this.addOp(this.lineOp,b,d),this.lastX=
b,this.lastY=d)};b.prototype.moveTo=function(b,d){this.passThrough?this.originalMoveTo.apply(this.canvas,arguments):(this.addOp(this.moveOp,b,d),this.lastX=b,this.lastY=d,this.firstX=b,this.firstY=d)};b.prototype.close=function(){this.passThrough?this.originalClose.apply(this.canvas,arguments):this.addOp(this.closeOp)};b.prototype.quadTo=function(b,d,c,g){this.passThrough?this.originalQuadTo.apply(this.canvas,arguments):(this.addOp(this.quadOp,b,d,c,g),this.lastX=c,this.lastY=g)};b.prototype.curveTo=
-function(b,d,c,g,e,f){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,d,c,g,e,f),this.lastX=e,this.lastY=f)};b.prototype.arcTo=function(b,d,c,g,e,f,l){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var m=mxUtils.arcToCurves(this.lastX,this.lastY,b,d,c,g,e,f,l);if(null!=m)for(var k=0;k<m.length;k+=6)this.curveTo(m[k],m[k+1],m[k+2],m[k+3],m[k+4],m[k+5]);this.lastX=f;this.lastY=l}};b.prototype.rect=function(b,d,c,g){this.passThrough?
+function(b,d,c,g,e,f){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,d,c,g,e,f),this.lastX=e,this.lastY=f)};b.prototype.arcTo=function(b,d,c,g,e,f,l){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var k=mxUtils.arcToCurves(this.lastX,this.lastY,b,d,c,g,e,f,l);if(null!=k)for(var m=0;m<k.length;m+=6)this.curveTo(k[m],k[m+1],k[m+2],k[m+3],k[m+4],k[m+5]);this.lastX=f;this.lastY=l}};b.prototype.rect=function(b,d,c,g){this.passThrough?
this.originalRect.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.rectangle(b,d,c,g,this.getStyle(!0,!0)))};b.prototype.ellipse=function(b,d,c,g){this.passThrough?this.originalEllipse.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.ellipse(b+c/2,d+g/2,c,g,this.getStyle(!0,!0)))};b.prototype.roundrect=function(b,d,c,g,e,f){this.passThrough?this.originalRoundrect.apply(this.canvas,arguments):(this.begin(),this.moveTo(b+e,d),this.lineTo(b+c-e,d),
this.quadTo(b+c,d,b+c,d+f),this.lineTo(b+c,d+g-f),this.quadTo(b+c,d+g,b+c-e,d+g),this.lineTo(b+e,d+g),this.quadTo(b,d+g,b,d+g-f),this.lineTo(b,d+f),this.quadTo(b,d,b+e,d))};b.prototype.drawPath=function(b){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),b)}catch(V){}this.passThrough=!1}else if(null!=this.nextShape){for(var d in b)this.nextShape.options[d]=b[d];null==b.stroke&&delete this.nextShape.options.stroke;b.filled||delete this.nextShape.options.fill;this.passThrough=
!0;this.rc.draw(this.nextShape);this.passThrough=!1}};b.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};b.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};b.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!0))};b.prototype.destroy=function(){this.canvas.lineTo=
this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;this.canvas.rect=this.originalRect;this.canvas.ellipse=
this.originalEllipse;this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(d){return new b(d,Editor.createRoughCanvas(d),this)};var d=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(b){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","0")?d.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(b):this.createRoughCanvas(b)};var c=mxShape.prototype.paint;
-mxShape.prototype.paint=function(d){var g=d.addTolerance,e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(null!=d.handJiggle&&d.handJiggle.constructor==b&&!this.outline){d.save();var f=this.fill,l=this.stroke;this.stroke=this.fill=null;var m=this.configurePointerEvents,k=d.setStrokeColor;d.setStrokeColor=function(){};var n=d.setFillColor;d.setFillColor=function(){};e||null==f||(this.configurePointerEvents=function(){});d.handJiggle.passThrough=!0;
-c.apply(this,arguments);d.handJiggle.passThrough=!1;d.setFillColor=n;d.setStrokeColor=k;this.configurePointerEvents=m;this.stroke=l;this.fill=f;d.restore();e&&null!=f&&(d.addTolerance=function(){})}c.apply(this,arguments);d.addTolerance=g};var g=mxShape.prototype.paintGlassEffect;mxShape.prototype.paintGlassEffect=function(d,c,e,f,l,m){null!=d.handJiggle&&d.handJiggle.constructor==b?(d.handJiggle.passThrough=!0,g.apply(this,arguments),d.handJiggle.passThrough=!1):g.apply(this,arguments)}})();Editor.fastCompress=
+mxShape.prototype.paint=function(d){var g=d.addTolerance,e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(null!=d.handJiggle&&d.handJiggle.constructor==b&&!this.outline){d.save();var f=this.fill,l=this.stroke;this.stroke=this.fill=null;var k=this.configurePointerEvents,m=d.setStrokeColor;d.setStrokeColor=function(){};var n=d.setFillColor;d.setFillColor=function(){};e||null==f||(this.configurePointerEvents=function(){});d.handJiggle.passThrough=!0;
+c.apply(this,arguments);d.handJiggle.passThrough=!1;d.setFillColor=n;d.setStrokeColor=m;this.configurePointerEvents=k;this.stroke=l;this.fill=f;d.restore();e&&null!=f&&(d.addTolerance=function(){})}c.apply(this,arguments);d.addTolerance=g};var g=mxShape.prototype.paintGlassEffect;mxShape.prototype.paintGlassEffect=function(d,c,e,f,l,k){null!=d.handJiggle&&d.handJiggle.constructor==b?(d.handJiggle.passThrough=!0,g.apply(this,arguments),d.handJiggle.passThrough=!1):g.apply(this,arguments)}})();Editor.fastCompress=
function(b){return null==b||0==b.length||"undefined"===typeof pako?b:Graph.arrayBufferToString(pako.deflateRaw(b))};Editor.fastDecompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:pako.inflateRaw(Graph.stringToArrayBuffer(atob(b)),{to:"string"})};Editor.extractGraphModel=function(b,d,c){if(null!=b&&"undefined"!==typeof pako){var g=b.ownerDocument.getElementsByTagName("div"),e=[];if(null!=g&&0<g.length)for(var f=0;f<g.length;f++)if("mxgraph"==g[f].getAttribute("class")){e.push(g[f]);
break}0<e.length&&(g=e[0].getAttribute("data-mxgraph"),null!=g?(e=JSON.parse(g),null!=e&&null!=e.xml&&(b=mxUtils.parseXml(e.xml),b=b.documentElement)):(e=e[0].getElementsByTagName("div"),0<e.length&&(g=mxUtils.getTextContent(e[0]),g=Graph.decompress(g,null,c),0<g.length&&(b=mxUtils.parseXml(g),b=b.documentElement))))}if(null!=b&&"svg"==b.nodeName)if(g=b.getAttribute("content"),null!=g&&"<"!=g.charAt(0)&&"%"!=g.charAt(0)&&(g=unescape(window.atob?atob(g):Base64.decode(cont,g))),null!=g&&"%"==g.charAt(0)&&
(g=decodeURIComponent(g)),null!=g&&0<g.length)b=mxUtils.parseXml(g).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==b||d||(e=null,"diagram"==b.nodeName?e=b:"mxfile"==b.nodeName&&(g=b.getElementsByTagName("diagram"),0<g.length&&(e=g[Math.max(0,Math.min(g.length-1,urlParams.page||0))])),null!=e&&(b=Editor.parseDiagramNode(e,c)));null==b||"mxGraphModel"==b.nodeName||d&&"mxfile"==b.nodeName||(b=null);return b};Editor.parseDiagramNode=function(b,d){var c=mxUtils.trim(mxUtils.getTextContent(b)),
g=null;0<c.length?(c=Graph.decompress(c,null,d),null!=c&&0<c.length&&(g=mxUtils.parseXml(c).documentElement)):(c=mxUtils.getChildNodes(b),0<c.length&&(g=mxUtils.createXmlDocument(),g.appendChild(g.importNode(c[0],!0)),g=g.documentElement));return g};Editor.getDiagramNodeXml=function(b){var d=mxUtils.getTextContent(b),c=null;0<d.length?c=Graph.decompress(d):null!=b.firstChild&&(c=mxUtils.getXml(b.firstChild));return c};Editor.extractGraphModelFromPdf=function(b){b=b.substring(b.indexOf(",")+1);b=window.atob&&
-!mxClient.IS_SF?atob(b):Base64.decode(b,!0);if("%PDF-1.7"==b.substring(0,8)){var d=b.indexOf("EmbeddedFile");if(-1<d){var c=b.indexOf("stream",d)+9;if(0<b.substring(d,c).indexOf("application#2Fvnd.jgraph.mxfile"))return d=b.indexOf("endstream",c-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(c,d)),{to:"string"})}return null}for(var c=null,d="",g=0,e=0,f=[],l=null;e<b.length;){var m=b.charCodeAt(e),e=e+1;10!=m&&(d+=String.fromCharCode(m));m=="/Subject (%3Cmxfile".charCodeAt(g)?g++:g=0;if(19==
-g){var k=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(k>e){c=b.substring(e,k);break}}10==m&&("endobj"==d?l=null:"obj"==d.substring(d.length-3,d.length)||"xref"==d||"trailer"==d?(l=[],f[d.split(" ")[0]]=l):null!=l&&l.push(d),d="")}null==c&&(c=Editor.extractGraphModelFromXref(f));null!=c&&(c=decodeURIComponent(c.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return c};Editor.extractGraphModelFromXref=function(b){var d=b.trailer,c=null;null!=d&&(d=/.* \/Info (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<
+!mxClient.IS_SF?atob(b):Base64.decode(b,!0);if("%PDF-1.7"==b.substring(0,8)){var d=b.indexOf("EmbeddedFile");if(-1<d){var c=b.indexOf("stream",d)+9;if(0<b.substring(d,c).indexOf("application#2Fvnd.jgraph.mxfile"))return d=b.indexOf("endstream",c-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(c,d)),{to:"string"})}return null}for(var c=null,d="",g=0,e=0,f=[],l=null;e<b.length;){var k=b.charCodeAt(e),e=e+1;10!=k&&(d+=String.fromCharCode(k));k=="/Subject (%3Cmxfile".charCodeAt(g)?g++:g=0;if(19==
+g){var m=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(m>e){c=b.substring(e,m);break}}10==k&&("endobj"==d?l=null:"obj"==d.substring(d.length-3,d.length)||"xref"==d||"trailer"==d?(l=[],f[d.split(" ")[0]]=l):null!=l&&l.push(d),d="")}null==c&&(c=Editor.extractGraphModelFromXref(f));null!=c&&(c=decodeURIComponent(c.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return c};Editor.extractGraphModelFromXref=function(b){var d=b.trailer,c=null;null!=d&&(d=/.* \/Info (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<
d.length&&(d=b[d[1]],null!=d&&(d=/.* \/Subject (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<d.length&&(b=b[d[1]],null!=b&&(b=b.join("\n"),c=b.substring(1,b.length-1))))));return c};Editor.extractParserError=function(b,d){var c=null,g=null!=b?b.getElementsByTagName("parsererror"):null;null!=g&&0<g.length&&(c=d||mxResources.get("invalidChars"),g=g[0].getElementsByTagName("div"),0<g.length&&(c=mxUtils.getTextContent(g[0])));return null!=c?mxUtils.trim(c):c};Editor.addRetryToError=function(b,d){if(null!=
b){var c=null!=b.error?b.error:b;null==c.retry&&(c.retry=d)}};Editor.configure=function(b,d){if(null!=b){Editor.config=b;Editor.configVersion=b.version;Menus.prototype.defaultFonts=b.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=b.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=b.defaultColors||ColorDialog.prototype.defaultColors;ColorDialog.prototype.colorNames=b.colorNames||ColorDialog.prototype.colorNames;StyleFormatPanel.prototype.defaultColorSchemes=
b.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=b.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=b.autosaveDelay||DrawioFile.prototype.autosaveDelay;null!=b.templateFile&&(EditorUi.templateFile=b.templateFile);null!=b.styles&&(Array.isArray(b.styles)?Editor.styles=b.styles:EditorUi.debug("Configuration Error: Array expected for styles"));null!=b.globalVars&&(Editor.globalVars=b.globalVars);null!=b.compressXml&&
@@ -3209,26 +3212,26 @@ Editor.prototype.csvToArray=function(b){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*
'"')):void 0!==e&&d.push(e);return""});/,\s*$/.test(b)&&d.push("");return d};Editor.prototype.isCorsEnabledForUrl=function(b){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.substring(0,window.location.origin.length)==window.location.origin)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(b)||"https://raw.githubusercontent.com/"===b.substring(0,34)};Editor.prototype.createImageUrlConverter=
function(){var b=new mxUrlConverter;b.updateBaseUrl();var d=b.convert,c=this;b.convert=function(g){if(null!=g){var e="http://"==g.substring(0,7)||"https://"==g.substring(0,8);e&&!navigator.onLine?g=Editor.svgBrokenImage.src:!e||g.substring(0,b.baseUrl.length)==b.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(g)?"chrome-extension://"==g.substring(0,19)||mxClient.IS_CHROMEAPP||(g=d.apply(this,arguments)):g=PROXY_URL+"?url="+encodeURIComponent(g)}return g};return b};Editor.createSvgDataUri=function(b){return"data:image/svg+xml;base64,"+
btoa(unescape(encodeURIComponent(b)))};Editor.prototype.convertImageToDataUri=function(b,d){try{var c=!0,g=window.setTimeout(mxUtils.bind(this,function(){c=!1;d(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(b))mxUtils.get(b,mxUtils.bind(this,function(b){window.clearTimeout(g);c&&d(Editor.createSvgDataUri(b.getText()))}),function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)});else{var e=new Image;this.crossOriginImages&&(e.crossOrigin="anonymous");e.onload=function(){window.clearTimeout(g);
-if(c)try{var b=document.createElement("canvas"),f=b.getContext("2d");b.height=e.height;b.width=e.width;f.drawImage(e,0,0);d(b.toDataURL())}catch(oa){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(Q){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,l){for(var m=b.getElementsByTagName(c),k=0;k<m.length;k++)mxUtils.bind(this,
-function(c){try{if(null!=c){var m=g.convert(c.getAttribute(l));if(null!=m&&"data:"!=m.substring(0,5)){var k=f[m];null==k?(e++,this.convertImageToDataUri(m,function(g){null!=g&&(f[m]=g,c.setAttribute(l,g));e--;0==e&&d(b)})):c.setAttribute(l,k)}else null!=m&&c.setAttribute(l,m)}}catch(aa){}})(m[k])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,g=b.length,e,f,l;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+if(c)try{var b=document.createElement("canvas"),f=b.getContext("2d");b.height=e.height;b.width=e.width;f.drawImage(e,0,0);d(b.toDataURL())}catch(oa){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(Q){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,l){for(var k=b.getElementsByTagName(c),m=0;m<k.length;m++)mxUtils.bind(this,
+function(c){try{if(null!=c){var k=g.convert(c.getAttribute(l));if(null!=k&&"data:"!=k.substring(0,5)){var m=f[k];null==m?(e++,this.convertImageToDataUri(k,function(g){null!=g&&(f[k]=g,c.setAttribute(l,g));e--;0==e&&d(b)})):c.setAttribute(l,m)}else null!=k&&c.setAttribute(l,k)}}catch(aa){}})(k[m])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,g=b.length,e,f,l;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);d+="==";break}f=b.charCodeAt(c++);if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);d+="=";break}l=b.charCodeAt(c++);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
-2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(l&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return d};Editor.prototype.loadUrl=function(b,d,c,g,e,f,l,m){try{var k=!l&&(g||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var n=mxUtils.bind(this,
-function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&299>=b.getStatus()){if(null!=d){var g=b.getText();if(k){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var g=Array(b.length),e=0;e<b.length;e++)g[e]=String.fromCharCode(b[e]);g=g.join("")}f=null!=f?f:"data:image/png;base64,";g=f+Editor.base64Encode(g)}d(g)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},
-b):c({message:mxResources.get("error")+" "+b.getStatus()},b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},k,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:n})},m)});n()}catch(ra){null!=c&&c(ra)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var g=null!=b?b.lastIndexOf("/"):-1;0<=g&&(b=b.substring(0,g+1));var g=document.getElementsByTagName("base"),
+2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(l&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return d};Editor.prototype.loadUrl=function(b,d,c,g,e,f,l,k){try{var m=!l&&(g||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var n=mxUtils.bind(this,
+function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&299>=b.getStatus()){if(null!=d){var g=b.getText();if(m){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var g=Array(b.length),e=0;e<b.length;e++)g[e]=String.fromCharCode(b[e]);g=g.join("")}f=null!=f?f:"data:image/png;base64,";g=f+Editor.base64Encode(g)}d(g)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},
+b):c({message:mxResources.get("error")+" "+b.getStatus()},b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},m,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:n})},k)});n()}catch(ra){null!=c&&c(ra)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var g=null!=b?b.lastIndexOf("/"):-1;0<=g&&(b=b.substring(0,g+1));var g=document.getElementsByTagName("base"),
e=null;null!=g&&0<g.length&&(e=g[0].getAttribute("href"));for(var f=1;f<c.length;f++)if(g=c[f].indexOf(")"),0<g){var l=Editor.trimCssUrl(c[f].substring(0,g));this.graph.isRelativeUrl(l)&&(l=null!=e?e+l:window.location.protocol+"//"+window.location.hostname+("/"==l.charAt(0)?"":b)+l);d.push('url("'+l+'"'+c[f].substring(g))}else d.push(c[f])}else d=[b]}return null!=d?d.join(""):null};Editor.prototype.embedCssFonts=function(b,d){var c=b.split("url("),g=0;null==this.cachedFonts&&(this.cachedFonts={});
-var e=mxUtils.bind(this,function(){if(0==g){for(var b=[c[0]],e=1;e<c.length;e++){var f=c[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(c[e].substring(0,f))]);b.push('"'+c[e].substring(f))}d(b.join(""))}});if(0<c.length){for(var f=1;f<c.length;f++){var l=c[f].indexOf(")"),m=null,k=c[f].indexOf("format(",l);0<k&&(m=Editor.trimCssUrl(c[f].substring(k+7,c[f].indexOf(")",k))));mxUtils.bind(this,function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;g++;var d="application/x-font-ttf";
-if("svg"==m||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==m||"embedded-opentype"==m||/(\.otf)($|\?)/i.test(b))d="application/x-font-opentype";else if("woff"==m||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==m||/(\.woff2)($|\?)/i.test(b))d="application/font-woff2";else if("eot"==m||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";else if("sfnt"==m||/(\.sfnt)($|\?)/i.test(b))d="application/font-sfnt";var c=b;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&
-(c=PROXY_URL+"?url="+encodeURIComponent(b));this.loadUrl(c,mxUtils.bind(this,function(d){this.cachedFonts[b]=d;g--;e()}),mxUtils.bind(this,function(b){g--;e()}),!0,null,"data:"+d+";charset=utf-8;base64,")}})(Editor.trimCssUrl(c[f].substring(0,l)),m)}e()}else d(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;null!=b&&b()})):null!=b&&b()};Editor.prototype.embedExtFonts=function(b){var d=
+var e=mxUtils.bind(this,function(){if(0==g){for(var b=[c[0]],e=1;e<c.length;e++){var f=c[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(c[e].substring(0,f))]);b.push('"'+c[e].substring(f))}d(b.join(""))}});if(0<c.length){for(var f=1;f<c.length;f++){var l=c[f].indexOf(")"),k=null,m=c[f].indexOf("format(",l);0<m&&(k=Editor.trimCssUrl(c[f].substring(m+7,c[f].indexOf(")",m))));mxUtils.bind(this,function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;g++;var d="application/x-font-ttf";
+if("svg"==k||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(b))d="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(b))d="application/font-woff2";else if("eot"==k||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(b))d="application/font-sfnt";var c=b;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&
+(c=PROXY_URL+"?url="+encodeURIComponent(b));this.loadUrl(c,mxUtils.bind(this,function(d){this.cachedFonts[b]=d;g--;e()}),mxUtils.bind(this,function(b){g--;e()}),!0,null,"data:"+d+";charset=utf-8;base64,")}})(Editor.trimCssUrl(c[f].substring(0,l)),k)}e()}else d(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;null!=b&&b()})):null!=b&&b()};Editor.prototype.embedExtFonts=function(b){var d=
this.graph.getCustomFonts();if(0<d.length){var c="",g=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var e=mxUtils.bind(this,function(){0==g&&this.embedCssFonts(c,b)}),f=0;f<d.length;f++)mxUtils.bind(this,function(b,d){Graph.isCssFontUrl(d)?null==this.cachedGoogleFonts[d]?(g++,this.loadUrl(d,mxUtils.bind(this,function(b){this.cachedGoogleFonts[d]=b;c+=b;g--;e()}),mxUtils.bind(this,function(b){g--;c+="@import url("+d+");";e()}))):c+=this.cachedGoogleFonts[d]:c+='@font-face {font-family: "'+
b+'";src: url("'+d+'")}'})(d[f].name,d[f].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var d=document.getElementsByTagName("style"),c=0;c<d.length;c++)0<mxUtils.getTextContent(d[c]).indexOf("MathJax")&&b[0].appendChild(d[c].cloneNode(!0))};Editor.prototype.addFontCss=function(b,d){d=null!=d?d:this.absoluteCssFonts(this.fontCss);if(null!=d){var c=b.getElementsByTagName("defs"),g=b.ownerDocument;0==c.length?(c=null!=g.createElementNS?
g.createElementNS(mxConstants.NS_SVG,"defs"):g.createElement("defs"),null!=b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)):c=c[0];g=null!=g.createElementNS?g.createElementNS(mxConstants.NS_SVG,"style"):g.createElement("style");g.setAttribute("type","text/css");mxUtils.setTextContent(g,d);c.appendChild(g)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var g=mxClient.IS_FF?8192:16384;
-return Math.min(c,Math.min(g/b,g/d))};Editor.prototype.exportToCanvas=function(b,d,c,g,e,f,l,m,k,n,q,u,v,p,x,t,z,y){try{f=null!=f?f:!0;l=null!=l?l:!0;u=null!=u?u:this.graph;v=null!=v?v:0;var G=k?null:u.background;G==mxConstants.NONE&&(G=null);null==G&&(G=g);null==G&&0==k&&(G=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(u.getSvg(null,null,v,p,null,l,null,null,null,n,null,t,z,y),mxUtils.bind(this,function(c){try{var g=new Image;g.onload=mxUtils.bind(this,function(){try{var l=
-function(){mxClient.IS_SF?window.setTimeout(function(){p.drawImage(g,0,0);b(k,c)},0):(p.drawImage(g,0,0),b(k,c))},k=document.createElement("canvas"),n=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));m=null!=m?m:1;null!=d&&(m=f?Math.min(1,Math.min(3*d/(4*q),d/n)):d/n);m=this.getMaxCanvasScale(n,q,m);n=Math.ceil(m*n);q=Math.ceil(m*q);k.setAttribute("width",n);k.setAttribute("height",q);var p=k.getContext("2d");null!=G&&(p.beginPath(),p.rect(0,0,n,q),p.fillStyle=G,p.fill());1!=
-m&&p.scale(m,m);if(x){var t=u.view,z=t.scale;t.scale=1;var y=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=z;var y="data:image/svg+xml;base64,"+y,B=u.gridSize*t.gridSteps*m,C=u.getGraphBounds(),I=t.translate.x*z,L=t.translate.y*z,D=I+(C.x-I)/z-v,M=L+(C.y-L)/z-v,S=new Image;S.onload=function(){try{for(var b=-Math.round(B-mxUtils.mod((I-D)*m,B)),d=-Math.round(B-mxUtils.mod((L-M)*m,B));b<n;b+=B)for(var c=d;c<q;c+=B)p.drawImage(S,b/m,c/m);l()}catch(wa){null!=e&&e(wa)}};S.onerror=
+return Math.min(c,Math.min(g/b,g/d))};Editor.prototype.exportToCanvas=function(b,d,c,g,e,f,l,k,m,n,q,u,v,p,x,t,z,y){try{f=null!=f?f:!0;l=null!=l?l:!0;u=null!=u?u:this.graph;v=null!=v?v:0;var G=m?null:u.background;G==mxConstants.NONE&&(G=null);null==G&&(G=g);null==G&&0==m&&(G=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(u.getSvg(null,null,v,p,null,l,null,null,null,n,null,t,z,y),mxUtils.bind(this,function(c){try{var g=new Image;g.onload=mxUtils.bind(this,function(){try{var l=
+function(){mxClient.IS_SF?window.setTimeout(function(){p.drawImage(g,0,0);b(m,c)},0):(p.drawImage(g,0,0),b(m,c))},m=document.createElement("canvas"),n=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));k=null!=k?k:1;null!=d&&(k=f?Math.min(1,Math.min(3*d/(4*q),d/n)):d/n);k=this.getMaxCanvasScale(n,q,k);n=Math.ceil(k*n);q=Math.ceil(k*q);m.setAttribute("width",n);m.setAttribute("height",q);var p=m.getContext("2d");null!=G&&(p.beginPath(),p.rect(0,0,n,q),p.fillStyle=G,p.fill());1!=
+k&&p.scale(k,k);if(x){var t=u.view,z=t.scale;t.scale=1;var y=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=z;var y="data:image/svg+xml;base64,"+y,B=u.gridSize*t.gridSteps*k,C=u.getGraphBounds(),I=t.translate.x*z,M=t.translate.y*z,L=I+(C.x-I)/z-v,D=M+(C.y-M)/z-v,S=new Image;S.onload=function(){try{for(var b=-Math.round(B-mxUtils.mod((I-L)*k,B)),d=-Math.round(B-mxUtils.mod((M-D)*k,B));b<n;b+=B)for(var c=d;c<q;c+=B)p.drawImage(S,b/k,c/k);l()}catch(wa){null!=e&&e(wa)}};S.onerror=
function(b){null!=e&&e(b)};S.src=y}else l()}catch(Aa){null!=e&&e(Aa)}});g.onerror=function(b){null!=e&&e(b)};n&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),g.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(ia){null!=e&&e(ia)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(l)}catch(da){null!=e&&e(da)}}))}catch(ia){null!=
-e&&e(ia)}}),c,q)}catch(ma){null!=e&&e(ma)}};Editor.crcTable=[];for(var f=0;256>f;f++)for(var p=f,t=0;8>t;t++)p=1==(p&1)?3988292384^p>>>1:p>>>1,Editor.crcTable[f]=p;Editor.updateCRC=function(b,d,c,g){for(var e=0;e<g;e++)b=Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,g,e){function f(b,d){var c=k;k+=d;return b.substring(c,
-k)}function l(b){b=f(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function m(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+1);b=window.atob?atob(b):Base64.decode(b,!0);var k=0;if(f(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(b,4),"IHDR"!=f(b,4))null!=e&&e();else{f(b,17);e=b.substring(0,k);do{var n=l(b);if("IDAT"==f(b,4)){e=b.substring(0,k-8);"pHYs"==d&&
-"dpi"==c?(c=Math.round(g/.0254),c=m(c)+m(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+g;g=4294967295;g=Editor.updateCRC(g,d,0,4);g=Editor.updateCRC(g,c,0,c.length);e+=m(c.length)+d+c+m(g^4294967295);e+=b.substring(k-8,b.length);break}e+=b.substring(k-8,k-4+n);f(b,n);f(b,4)}while(n);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";
+e&&e(ia)}}),c,q)}catch(ma){null!=e&&e(ma)}};Editor.crcTable=[];for(var f=0;256>f;f++)for(var p=f,t=0;8>t;t++)p=1==(p&1)?3988292384^p>>>1:p>>>1,Editor.crcTable[f]=p;Editor.updateCRC=function(b,d,c,g){for(var e=0;e<g;e++)b=Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,g,e){function f(b,d){var c=m;m+=d;return b.substring(c,
+m)}function l(b){b=f(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function k(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+1);b=window.atob?atob(b):Base64.decode(b,!0);var m=0;if(f(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(b,4),"IHDR"!=f(b,4))null!=e&&e();else{f(b,17);e=b.substring(0,m);do{var n=l(b);if("IDAT"==f(b,4)){e=b.substring(0,m-8);"pHYs"==d&&
+"dpi"==c?(c=Math.round(g/.0254),c=k(c)+k(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+g;g=4294967295;g=Editor.updateCRC(g,d,0,4);g=Editor.updateCRC(g,c,0,c.length);e+=k(c.length)+d+c+k(g^4294967295);e+=b.substring(m-8,b.length);break}e+=b.substring(m-8,m-4+n);f(b,n);f(b,4)}while(n);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";
var d=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){d.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var g=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){g.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(b,d){var c=null;null!=b.editor.graph.getModel().getParent(d)?c=d.getId():null!=b.currentPage&&
(c=b.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var l=Format.prototype.init;Format.prototype.init=function(){l.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var q=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?q.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var b=this.editorUi.getCurrentFile();
return"1"==urlParams.embed||null!=b&&b.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(b){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(b){b=m.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var d=this.editorUi,c=d.editor.graph,g=this.createOption(mxResources.get("shadow"),function(){return c.shadowVisible},function(b){var g=new ChangePageSetup(d);g.ignoreColor=!0;g.ignoreImage=
@@ -3244,92 +3247,93 @@ type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity
type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",
min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},
-{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",
-type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=
-[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",
-dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",
-type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",
-type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},
-{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=
-[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},
-{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=[{name:"width",dispName:"Title Width",type:"float",defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",
-stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",font:"#ffffff"},{fill:"#008a00",stroke:"#005700",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},
-{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",
-stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",
-gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(b,d,c){if(null!=d){var g=function(b){if(null!=b)if(c)for(var g=
-0;g<b.length;g++)d[b[g].name]=b[g];else for(var e in d){for(var f=!1,g=0;g<b.length;g++)if(b[g].name==e&&b[g].type==d[e].type){f=!0;break}f||delete d[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),
-g(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{g(JSON.parse(b))}catch(Q){}}};var u=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.editorUi.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));u.apply(this,arguments);if(Editor.enableCustomProperties){for(var d={},c=b.vertices,g=b.edges,e=0;e<c.length;e++)this.findCommonProperties(c[e],d,
-0==e);for(e=0;e<g.length;e++)this.findCommonProperties(g[e],d,0==c.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(d).length&&this.container.appendChild(this.addProperties(this.createPanel(),d,b))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){this.addActions(b,["copyStyle","pasteStyle"]);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function g(b,
-d,c,g){u.getModel().beginUpdate();try{var e=[],f=[];if(null!=c.index){for(var l=[],m=c.parentRow.nextSibling;m&&m.getAttribute("data-pName")==b;)l.push(m.getAttribute("data-pValue")),m=m.nextSibling;c.index<l.length?null!=g?l.splice(g,1):l[c.index]=d:l.push(d);null!=c.size&&l.length>c.size&&(l=l.slice(0,c.size));d=l.join(",");null!=c.countProperty&&(u.setCellStyles(c.countProperty,l.length,u.getSelectionCells()),e.push(c.countProperty),f.push(l.length))}u.setCellStyles(b,d,u.getSelectionCells());
-e.push(b);f.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var k=c.dependentPropsDefVal[b],n=c.dependentPropsVals[b];if(n.length>d)n=n.slice(0,d);else for(var p=n.length;p<d;p++)n.push(k);n=n.join(",");u.setCellStyles(c.dependentProps[b],n,u.getSelectionCells());e.push(c.dependentProps[b]);f.push(n)}if("function"==typeof c.onChange)c.onChange(u,d);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",f,"cells",u.getSelectionCells()))}finally{u.getModel().endUpdate()}}
-function e(d,c,g){var e=mxUtils.getOffset(b,!0),f=mxUtils.getOffset(d,!0);c.style.position="absolute";c.style.left=f.x-e.x+"px";c.style.top=f.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(g?4:0)+"px";c.style.zIndex=5}function f(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height="4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,
-function(f){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;g(b,d,c)});mxEvent.consume(f)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function l(b,d,c,e,f,l,m){null!=d&&(d=d.split(","),v.push({name:b,values:d,type:c,defVal:e,countProperty:f,parentRow:l,isDeletable:!0,flipBkg:m}));btn=mxUtils.button("+",mxUtils.bind(q,function(d){for(var k=l,q=0;null!=k.nextSibling;)if(k.nextSibling.getAttribute("data-pName")==
-b)k=k.nextSibling,q++;else break;var u={type:c,parentRow:l,index:q,isDeletable:!0,defVal:e,countProperty:f},q=n(b,"",u,0==q%2,m);g(b,e,u);k.parentNode.insertBefore(q,k.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function m(b,d,c,g,e,f,l){if(0<e){var m=Array(e);d=null!=d?d.split(","):[];for(var k=0;k<e;k++)m[k]=null!=d[k]?d[k]:null!=g?g:"";v.push({name:b,values:m,type:c,defVal:g,parentRow:f,flipBkg:l,size:e})}return document.createElement("div")}
-function k(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){g(b,e.checked?"1":"0",c)});return e}function n(d,c,n,u,p){var v=n.dispName,x=n.type,t=document.createElement("tr");t.className="gePropRow"+(p?"Dark":"")+(u?"Alt":"")+" gePropNonHeaderRow";t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);u=!1;null!=n.index&&(t.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",u=!0);var z=document.createElement("td");
-z.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(z,v);z.setAttribute("title",v);u&&(z.style.textAlign="right");t.appendChild(z);z=document.createElement("td");z.className="gePropRowCell";if("color"==x)z.appendChild(f(d,c,n));else if("bool"==x||"boolean"==x)z.appendChild(k(d,c,n));else if("enum"==x){var y=n.enumList;for(p=0;p<y.length;p++)if(v=y[p],v.val==c){mxUtils.write(z,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(z,"click",mxUtils.bind(q,function(){var f=
-document.createElement("select");e(z,f);for(var l=0;l<y.length;l++){var m=y[l],k=document.createElement("option");k.value=mxUtils.htmlEntities(m.val);mxUtils.write(k,mxResources.get(m.dispName,null,m.dispName));f.appendChild(k)}f.value=c;b.appendChild(f);mxEvent.addListener(f,"change",function(){var b=mxUtils.htmlEntities(f.value);g(d,b,n)});f.focus();mxEvent.addListener(f,"blur",function(){b.removeChild(f)})}))}else"dynamicArr"==x?z.appendChild(l(d,c,n.subType,n.subDefVal,n.countProperty,t,p)):"staticArr"==
-x?z.appendChild(m(d,c,n.subType,n.subDefVal,n.size,t,p)):"readOnly"==x?(p=document.createElement("input"),p.setAttribute("readonly",""),p.value=c,p.style.width="96px",p.style.borderWidth="0px",z.appendChild(p)):(z.innerHTML=c,mxEvent.addListener(z,"click",mxUtils.bind(q,function(){function f(){var b=l.value,b=0==b.length&&"string"!=x?0:b;n.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",x="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=n.min&&b<n.min?b=n.min:null!=n.max&&b>n.max&&
-(b=n.max);b=mxUtils.htmlEntities(("int"==x?parseInt(b):b)+"");g(d,b,n)}var l=document.createElement("input");e(z,l,!0);l.value=c;l.className="gePropEditor";"int"!=x&&"float"!=x||n.allowAuto||(l.type="number",l.step="int"==x?"1":"any",null!=n.min&&(l.min=parseFloat(n.min)),null!=n.max&&(l.max=parseFloat(n.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&f()});l.focus();mxEvent.addListener(l,"blur",function(){f()})})));n.isDeletable&&(p=mxUtils.button("-",mxUtils.bind(q,
-function(b){g(d,"",n,n.index);mxEvent.consume(b)})),p.style.height="16px",p.style.width="25px",p.style["float"]="right",p.className="geColorBtn",z.appendChild(p));t.appendChild(z);return t}var q=this,u=this.editorUi.editor.graph,v=[];b.style.position="relative";b.style.padding="0";var p=document.createElement("table");p.className="geProperties";p.style.whiteSpace="nowrap";p.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var t=document.createElement("th");t.className=
-"gePropHeaderCell";var z=document.createElement("img");z.src=Sidebar.prototype.expandedImage;z.style.verticalAlign="middle";t.appendChild(z);mxUtils.write(t,mxResources.get("property"));x.style.cursor="pointer";var y=function(){var d=p.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){z.src=Sidebar.prototype.collapsedImage;c="none";for(var g=b.childNodes.length-1;0<=g;g--)try{var e=b.childNodes[g],f=e.nodeName.toUpperCase();"INPUT"!=f&&"SELECT"!=f||b.removeChild(e)}catch(pa){}}else z.src=
-Sidebar.prototype.expandedImage,c="";for(g=0;g<d.length;g++)d[g].style.display=c};mxEvent.addListener(x,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;y()});x.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";t.innerHTML=mxResources.get("value");x.appendChild(t);p.appendChild(x);var G=!1,C=!1,x=null;1==c.vertices.length&&0==c.edges.length?x=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(x=c.edges[0].id);null!=x&&p.appendChild(n("id",
-mxUtils.htmlEntities(x),{dispName:"ID",type:"readOnly"},!0,!1));for(var B in d)if(x=d[B],"function"!=typeof x.isVisible||x.isVisible(c,this)){var L=null!=c.style[B]?mxUtils.htmlEntities(c.style[B]+""):null!=x.getDefaultValue?x.getDefaultValue(c,this):x.defVal;if("separator"==x.type)C=!C;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]||d[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var I=x.dependentProps,D=[],M=[],t=0;t<I.length;t++){var F=c.style[I[t]];M.push(d[I[t]].subDefVal);
-D.push(null!=F?F.split(","):[])}x.dependentPropsDefVal=M;x.dependentPropsVals=D}p.appendChild(n(B,L,x,G,C));G=!G}}for(t=0;t<v.length;t++)for(x=v[t],d=x.parentRow,c=0;c<x.values.length;c++)B=n(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size},0==c%2,x.flipBkg),d.parentNode.insertBefore(B,d.nextSibling),d=B;b.appendChild(p);y();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,
-"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,g=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var f="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),
-l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.position="relative";l.style.textAlign="center";l.style.width="210px";for(var m=[],k=0;k<this.defaultColorSchemes.length;k++){var n=document.createElement("div");n.style.display="inline-block";n.style.width="6px";n.style.height="6px";n.style.marginLeft="4px";n.style.marginRight="3px";n.style.borderRadius="3px";n.style.cursor="pointer";n.style.background="transparent";n.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(n,
-"click",mxUtils.bind(this,function(){q(b)}))})(k);m.push(n);l.appendChild(n)}var q=mxUtils.bind(this,function(b){null!=m[b]&&(null!=this.format.currentScheme&&null!=m[this.format.currentScheme]&&(m[this.format.currentScheme].style.background="transparent"),this.format.currentScheme=b,u(this.defaultColorSchemes[this.format.currentScheme]),m[this.format.currentScheme].style.background="#84d7ff")}),u=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,
-function(d){g.getModel().beginUpdate();try{for(var e=c.getSelectionState().cells,l=0;l<e.length;l++){for(var m=g.getModel().getStyle(e[l]),k=0;k<f.length;k++)m=mxUtils.removeStylename(m,f[k]);var n=g.getModel().isVertex(e[l])?g.defaultVertexStyle:g.defaultEdgeStyle;null!=b?(mxEvent.isShiftDown(d)||(m=""==b.fill?mxUtils.setStyle(m,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(m,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,null)),m=mxUtils.setStyle(m,mxConstants.STYLE_GRADIENTCOLOR,
-b.gradient||mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(d)||mxClient.IS_MAC&&mxEvent.isMetaDown(d)||!g.getModel().isVertex(e[l])||(m=mxUtils.setStyle(m,mxConstants.STYLE_FONTCOLOR,b.font||mxUtils.getValue(n,mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(d)||(m=""==b.stroke?mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,null)))):(m=mxUtils.setStyle(m,
-mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,"#ffffff")),m=mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,"#000000")),m=mxUtils.setStyle(m,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),g.getModel().isVertex(e[l])&&(m=mxUtils.setStyle(m,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FONTCOLOR,null))));g.getModel().setStyle(e[l],m)}}finally{g.getModel().endUpdate()}}));
-d.className="geStyleButton";d.style.width="36px";d.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";d.style.margin="0px 6px 6px 0px";if(null!=b){var l="1"==urlParams.sketch?"2px solid":"1px solid";null!=b.gradient?mxClient.IS_IE&&10>document.documentMode?d.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":d.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?
-d.style.background="url('"+Dialog.prototype.noColorImage+"')":d.style.backgroundColor=""==b.fill?mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff"):b.fill||mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff");d.style.border=b.stroke==mxConstants.NONE?l+" transparent":""==b.stroke?l+" "+mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":
-Editor.darkColor):l+" "+(b.stroke||mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor));null!=b.title&&d.setAttribute("title",b.title)}else{var l=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),m=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");d.style.backgroundColor=l;d.style.border="1px solid "+m}d.style.borderRadius="0";e.appendChild(d)});e.innerHTML="";for(var l=0;l<b.length;l++)0<
-l&&0==mxUtils.mod(l,4)&&mxUtils.br(e),d(b[l])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):q(this.format.currentScheme);var k=10>=this.defaultColorSchemes.length?28:8,p=document.createElement("div");p.style.cssText="position:absolute;left:10px;top:8px;bottom:"+k+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
-mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var v=document.createElement("div");v.style.cssText="position:absolute;left:202px;top:8px;bottom:"+k+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
-1<this.defaultColorSchemes.length&&(b.appendChild(p),b.appendChild(v));mxEvent.addListener(v,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));d(p);d(v);u(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(l);return b};StyleFormatPanel.prototype.addEditOps=function(b){var d=this.editorUi.getSelectionState(),c=this.editorUi.editor.graph,g=null;1==d.cells.length&&(g=mxUtils.button(mxResources.get("editStyle"),
-mxUtils.bind(this,function(b){this.editorUi.actions.get("editStyle").funct()})),g.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),g.style.width="210px",g.style.marginBottom="2px",b.appendChild(g));c=1==d.cells.length?c.view.getState(d.cells[0]):null;null!=c&&null!=c.shape&&null!=c.shape.stencil?(d=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editShape").funct()})),d.setAttribute("title",
-mxResources.get("editShape")),d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),b.appendChild(d)):d.image&&0<d.cells.length&&(d=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(b){this.editorUi.actions.get("image").funct()})),d.setAttribute("title",mxResources.get("editImage")),d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),
-b.appendChild(d));return b}}Graph.customFontElements={};Graph.recentCustomFonts={};Graph.isGoogleFontUrl=function(b){return b.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS};Graph.isCssFontUrl=function(b){return Graph.isGoogleFontUrl(b)};Graph.createFontElement=function(b,d){var c;Graph.isCssFontUrl(d)?(c=document.createElement("link"),c.setAttribute("rel","stylesheet"),c.setAttribute("type","text/css"),c.setAttribute("charset","UTF-8"),c.setAttribute("href",d)):(c=document.createElement("style"),
-mxUtils.write(c,'@font-face {\nfont-family: "'+b+'";\nsrc: url("'+d+'");\n}'));return c};Graph.addFont=function(b,d,c){if(null!=b&&0<b.length&&null!=d&&0<d.length){var g=b.toLowerCase();if("helvetica"!=g&&"arial"!=b&&"sans-serif"!=g){var e=Graph.customFontElements[g];null!=e&&e.url!=d&&(e.elt.parentNode.removeChild(e.elt),e=null);null==e?(e=d,"http:"==d.substring(0,5)&&(e=PROXY_URL+"?url="+encodeURIComponent(d)),e={name:b,url:d,elt:Graph.createFontElement(b,e)},Graph.customFontElements[g]=e,Graph.recentCustomFonts[g]=
-e,d=document.getElementsByTagName("head")[0],null!=c&&("link"==e.elt.nodeName.toLowerCase()?(e.elt.onload=c,e.elt.onerror=c):c()),null!=d&&d.appendChild(e.elt)):null!=c&&c()}else null!=c&&c()}else null!=c&&c();return b};Graph.getFontUrl=function(b,d){var c=Graph.customFontElements[b.toLowerCase()];null!=c&&(d=c.url);return d};Graph.processFontAttributes=function(b){b=b.getElementsByTagName("*");for(var d=0;d<b.length;d++){var c=b[d].getAttribute("data-font-src");if(null!=c){var g="FONT"==b[d].nodeName?
-b[d].getAttribute("face"):b[d].style.fontFamily;null!=g&&Graph.addFont(g,c)}}};Graph.processFontStyle=function(b){if(null!=b){var d=mxUtils.getValue(b,"fontSource",null);if(null!=d){var c=mxUtils.getValue(b,mxConstants.STYLE_FONTFAMILY,null);null!=c&&Graph.addFont(c,decodeURIComponent(d))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible=
-"0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;Graph.prototype.defaultMathEnabled=!1;var y=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}y.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var d=
-null;mxEvent.addListener(this.container,"mouseenter",b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){d=null});this.isMouseInsertPoint=function(){return null!=d};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=d?this.getPointForEvent(d):c.apply(this,arguments)};var g=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var d=this.graph.getCellStyle(b);if(null!=d&&"rack"==d.childLayout){var c=new mxStackLayout(this.graph,
-!1);c.gridSize=null!=d.rackUnitSize?parseFloat(d.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;c.marginLeft=d.marginLeft||0;c.marginRight=d.marginRight||0;c.marginTop=d.marginTop||0;c.marginBottom=d.marginBottom||0;c.allowGaps=d.allowGaps||0;c.horizontal="1"==mxUtils.getValue(d,"horizontalRack","0");c.resizeParent=!1;c.fill=!0;return c}return g.apply(this,arguments)};this.updateGlobalUrlVariables()};var x=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=
-function(b,d){return Graph.processFontStyle(x.apply(this,arguments))};var F=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,f,l,m,k,n,q){F.apply(this,arguments);Graph.processFontAttributes(q)};var H=mxText.prototype.redraw;mxText.prototype.redraw=function(){H.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function g(){for(var b=l.getSelectionCells(),
-d=[],c=0;c<b.length;c++)l.isCellVisible(b[c])&&d.push(b[c]);l.setSelectionCells(d)}function e(b){l.hiddenTags=b?[]:m.slice();g();l.refresh()}function f(b,c){n.innerHTML="";if(0<b.length){var f=document.createElement("table");f.setAttribute("cellpadding","2");f.style.boxSizing="border-box";f.style.tableLayout="fixed";f.style.width="100%";var k=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var f=0>mxUtils.indexOf(l.hiddenTags,b),n=document.createElement("tr"),
-q=document.createElement("td");q.style.align="center";q.style.width="16px";var u=document.createElement("img");u.setAttribute("src",f?Editor.visibleImage:Editor.hiddenImage);u.setAttribute("title",mxResources.get(f?"hideIt":"show",[b]));mxUtils.setOpacity(u,f?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";if(d||Editor.isDarkMode())u.style.filter="invert(100%)";q.appendChild(u);mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(l.hiddenTags,b);mxEvent.isShiftDown(d)?
-e(0<=mxUtils.indexOf(l.hiddenTags,b)):(0>c?l.hiddenTags.push(b):0<=c&&l.hiddenTags.splice(c,1),g(),l.refresh());mxEvent.consume(d)});n.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,f?100:40);q.appendChild(a);
-mxEvent.addListener(q,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=l.getCellsForTags([b],null,null,!0);l.isEnabled()?l.setSelectionCells(c):l.highlightCells(c)}else if(f&&0<l.hiddenTags.length)e(!0);else{var c=m.slice(),k=mxUtils.indexOf(c,b);c.splice(k,1);l.hiddenTags=c;g();l.refresh()}mxEvent.consume(d)});n.appendChild(q);if(l.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==c){q.style.align="center";
-q.style.width="16px";u=document.createElement("img");u.setAttribute("src",Editor.crossImage);u.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(u,f?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";if(d||Editor.isDarkMode())u.style.filter="invert(100%)";mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(m,b);0<=c&&m.splice(c,1);l.removeTagsForCells(l.model.getDescendants(l.model.getRoot()),[b]);l.refresh();mxEvent.consume(d)});
-q.appendChild(u)}else{var p=document.createElement("input");p.setAttribute("type","checkbox");p.style.margin="0px";p.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);p.checked=p.defaultChecked;p.style.background="transparent";p.setAttribute("title",mxResources.get(p.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(p,"change",function(d){p.checked?l.addTagsForCells(l.getSelectionCells(),[b]):l.removeTagsForCells(l.getSelectionCells(),[b]);mxEvent.consume(d)});q.appendChild(p)}n.appendChild(q)}k.appendChild(n)})(b[q]);
-f.appendChild(k);n.appendChild(f)}}var l=this,m=l.hiddenTags.slice(),k=document.createElement("div");k.style.userSelect="none";k.style.overflow="hidden";k.style.padding="10px";k.style.height="100%";var n=document.createElement("div");n.style.boxSizing="border-box";n.style.borderRadius="4px";n.style.userSelect="none";n.style.overflow="auto";n.style.position="absolute";n.style.left="10px";n.style.right="10px";n.style.top="10px";n.style.border=l.isEnabled()?"1px solid #808080":"none";n.style.bottom=
-l.isEnabled()?"48px":"10px";k.appendChild(n);var q=mxUtils.button(mxResources.get("reset"),function(b){l.hiddenTags=[];mxEvent.isShiftDown(b)||(m=l.hiddenTags.slice());g();l.refresh()});q.setAttribute("title",mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var u=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(m,function(b){m=b;p()})});u.setAttribute("title",mxResources.get("add"));u.className="geBtn";u.style.margin="0";l.addListener(mxEvent.ROOT,function(){m=l.hiddenTags.slice()});
-var p=mxUtils.bind(this,function(d,c){if(b()){for(var g=l.getAllTags(),e=0;e<g.length;e++)0>mxUtils.indexOf(m,g[e])&&m.push(g[e]);m.sort();l.isSelectionEmpty()?f(m):f(m,l.getCommonTagsForCells(l.getSelectionCells()))}});l.selectionModel.addListener(mxEvent.CHANGE,p);l.model.addListener(mxEvent.CHANGE,p);l.addListener(mxEvent.REFRESH,p);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom=
-"0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";l.isEnabled()&&(v.appendChild(q),v.appendChild(u),k.appendChild(v));return{div:k,refresh:p}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");
-d=Graph.getFontUrl(b,d);for(var g=0;g<c.length;g++)c[g].getAttribute("face")==b&&c[g].getAttribute("data-font-src")!=d&&c[g].setAttribute("data-font-src",d)}};var z=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return z.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};
-var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(B){null!=window.console&&console.log("Error in vars URL parameter: "+B)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var D=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=D.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=
-function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var N=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,g,e,f,l,m,k,n,q,u,p,v){var x=null,t=null,z=null;u||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.shapeForegroundColor,z=this.shapeBackgroundColor,this.shapeForegroundColor=
-"darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var y=N.apply(this,arguments),C=this.getCustomFonts();if(q&&0<C.length){var L=y.ownerDocument,G=null!=L.createElementNS?L.createElementNS(mxConstants.NS_SVG,"style"):L.createElement("style");null!=L.setAttributeNS?G.setAttributeNS("type","text/css"):G.setAttribute("type","text/css");for(var B=
-"",D="",I=0;I<C.length;I++){var M=C[I].name,F=C[I].url;Graph.isCssFontUrl(F)?B+="@import url("+F+");\n":D+='@font-face {\nfont-family: "'+M+'";\nsrc: url("'+F+'");\n}\n'}G.appendChild(L.createTextNode(B+D));y.getElementsByTagName("defs")[0].appendChild(G)}null!=x&&(this.shapeBackgroundColor=z,this.shapeForegroundColor=t,this.stylesheet=x,this.refresh());return y};var E=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=E.apply(this,arguments);if(this.mathEnabled){var d=
+{name:"swimlaneHead",dispName:"Head Border",type:"bool",defVal:!0},{name:"swimlaneBody",dispName:"Body Border",type:"bool",defVal:!0},{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",
+type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},
+{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=
+[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},
+{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",
+type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",
+dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,
+defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];
+mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=[{name:"width",dispName:"Title Width",type:"float",
+defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",font:"#ffffff"},{fill:"#008a00",stroke:"#005700",
+font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},
+{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",
+gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},
+{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(b,d,c){if(null!=d){var g=function(b){if(null!=b)if(c)for(var g=0;g<b.length;g++)d[b[g].name]=b[g];else for(var e in d){for(var f=!1,g=0;g<b.length;g++)if(b[g].name==e&&b[g].type==d[e].type){f=!0;break}f||delete d[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=
+e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),g(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{g(JSON.parse(b))}catch(Q){}}};var u=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.editorUi.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));
+u.apply(this,arguments);if(Editor.enableCustomProperties){for(var d={},c=b.vertices,g=b.edges,e=0;e<c.length;e++)this.findCommonProperties(c[e],d,0==e);for(e=0;e<g.length;e++)this.findCommonProperties(g[e],d,0==c.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(d).length&&this.container.appendChild(this.addProperties(this.createPanel(),d,b))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){this.addActions(b,["copyStyle",
+"pasteStyle"]);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function g(b,d,c,g){u.getModel().beginUpdate();try{var e=[],f=[];if(null!=c.index){for(var l=[],k=c.parentRow.nextSibling;k&&k.getAttribute("data-pName")==b;)l.push(k.getAttribute("data-pValue")),k=k.nextSibling;c.index<l.length?null!=g?l.splice(g,1):l[c.index]=d:l.push(d);null!=c.size&&l.length>c.size&&(l=l.slice(0,c.size));d=l.join(",");null!=c.countProperty&&
+(u.setCellStyles(c.countProperty,l.length,u.getSelectionCells()),e.push(c.countProperty),f.push(l.length))}u.setCellStyles(b,d,u.getSelectionCells());e.push(b);f.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var m=c.dependentPropsDefVal[b],n=c.dependentPropsVals[b];if(n.length>d)n=n.slice(0,d);else for(var p=n.length;p<d;p++)n.push(m);n=n.join(",");u.setCellStyles(c.dependentProps[b],n,u.getSelectionCells());e.push(c.dependentProps[b]);f.push(n)}if("function"==typeof c.onChange)c.onChange(u,
+d);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",f,"cells",u.getSelectionCells()))}finally{u.getModel().endUpdate()}}function e(d,c,g){var e=mxUtils.getOffset(b,!0),f=mxUtils.getOffset(d,!0);c.style.position="absolute";c.style.left=f.x-e.x+"px";c.style.top=f.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(g?4:0)+"px";c.style.zIndex=5}function f(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height="4px";e.style.margin="2px";
+e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(f){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;g(b,d,c)});mxEvent.consume(f)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function l(b,d,c,e,f,l,k){null!=d&&(d=d.split(","),v.push({name:b,values:d,type:c,defVal:e,countProperty:f,
+parentRow:l,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(q,function(d){for(var m=l,q=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==b)m=m.nextSibling,q++;else break;var u={type:c,parentRow:l,index:q,isDeletable:!0,defVal:e,countProperty:f},q=n(b,"",u,0==q%2,k);g(b,e,u);m.parentNode.insertBefore(q,m.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(b,d,c,g,e,f,l){if(0<e){var k=Array(e);
+d=null!=d?d.split(","):[];for(var m=0;m<e;m++)k[m]=null!=d[m]?d[m]:null!=g?g:"";v.push({name:b,values:k,type:c,defVal:g,parentRow:f,flipBkg:l,size:e})}return document.createElement("div")}function m(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){g(b,e.checked?"1":"0",c)});return e}function n(d,c,n,u,p){var x=n.dispName,v=n.type,t=document.createElement("tr");t.className="gePropRow"+(p?"Dark":"")+(u?"Alt":"")+" gePropNonHeaderRow";
+t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);u=!1;null!=n.index&&(t.setAttribute("data-index",n.index),x=(null!=x?x:"")+"["+n.index+"]",u=!0);var z=document.createElement("td");z.className="gePropRowCell";x=mxResources.get(x,null,x);mxUtils.write(z,x);z.setAttribute("title",x);u&&(z.style.textAlign="right");t.appendChild(z);z=document.createElement("td");z.className="gePropRowCell";if("color"==v)z.appendChild(f(d,c,n));else if("bool"==v||"boolean"==v)z.appendChild(m(d,c,n));else if("enum"==
+v){var y=n.enumList;for(p=0;p<y.length;p++)if(x=y[p],x.val==c){mxUtils.write(z,mxResources.get(x.dispName,null,x.dispName));break}mxEvent.addListener(z,"click",mxUtils.bind(q,function(){var f=document.createElement("select");e(z,f);for(var l=0;l<y.length;l++){var k=y[l],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);mxUtils.write(m,mxResources.get(k.dispName,null,k.dispName));f.appendChild(m)}f.value=c;b.appendChild(f);mxEvent.addListener(f,"change",function(){var b=mxUtils.htmlEntities(f.value);
+g(d,b,n)});f.focus();mxEvent.addListener(f,"blur",function(){b.removeChild(f)})}))}else"dynamicArr"==v?z.appendChild(l(d,c,n.subType,n.subDefVal,n.countProperty,t,p)):"staticArr"==v?z.appendChild(k(d,c,n.subType,n.subDefVal,n.size,t,p)):"readOnly"==v?(p=document.createElement("input"),p.setAttribute("readonly",""),p.value=c,p.style.width="96px",p.style.borderWidth="0px",z.appendChild(p)):(z.innerHTML=c,mxEvent.addListener(z,"click",mxUtils.bind(q,function(){function f(){var b=l.value,b=0==b.length&&
+"string"!=v?0:b;n.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",v="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=n.min&&b<n.min?b=n.min:null!=n.max&&b>n.max&&(b=n.max);b=mxUtils.htmlEntities(("int"==v?parseInt(b):b)+"");g(d,b,n)}var l=document.createElement("input");e(z,l,!0);l.value=c;l.className="gePropEditor";"int"!=v&&"float"!=v||n.allowAuto||(l.type="number",l.step="int"==v?"1":"any",null!=n.min&&(l.min=parseFloat(n.min)),null!=n.max&&(l.max=parseFloat(n.max)));b.appendChild(l);
+mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&f()});l.focus();mxEvent.addListener(l,"blur",function(){f()})})));n.isDeletable&&(p=mxUtils.button("-",mxUtils.bind(q,function(b){g(d,"",n,n.index);mxEvent.consume(b)})),p.style.height="16px",p.style.width="25px",p.style["float"]="right",p.className="geColorBtn",z.appendChild(p));t.appendChild(z);return t}var q=this,u=this.editorUi.editor.graph,v=[];b.style.position="relative";b.style.padding="0";var p=document.createElement("table");p.className=
+"geProperties";p.style.whiteSpace="nowrap";p.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var z=document.createElement("img");z.src=Sidebar.prototype.expandedImage;z.style.verticalAlign="middle";t.appendChild(z);mxUtils.write(t,mxResources.get("property"));x.style.cursor="pointer";var y=function(){var d=p.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){z.src=Sidebar.prototype.collapsedImage;
+c="none";for(var g=b.childNodes.length-1;0<=g;g--)try{var e=b.childNodes[g],f=e.nodeName.toUpperCase();"INPUT"!=f&&"SELECT"!=f||b.removeChild(e)}catch(pa){}}else z.src=Sidebar.prototype.expandedImage,c="";for(g=0;g<d.length;g++)d[g].style.display=c};mxEvent.addListener(x,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;y()});x.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";t.innerHTML=mxResources.get("value");x.appendChild(t);p.appendChild(x);
+var C=!1,G=!1,x=null;1==c.vertices.length&&0==c.edges.length?x=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(x=c.edges[0].id);null!=x&&p.appendChild(n("id",mxUtils.htmlEntities(x),{dispName:"ID",type:"readOnly"},!0,!1));for(var B in d)if(x=d[B],"function"!=typeof x.isVisible||x.isVisible(c,this)){var M=null!=c.style[B]?mxUtils.htmlEntities(c.style[B]+""):null!=x.getDefaultValue?x.getDefaultValue(c,this):x.defVal;if("separator"==x.type)G=!G;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]||
+d[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var I=x.dependentProps,L=[],D=[],t=0;t<I.length;t++){var F=c.style[I[t]];D.push(d[I[t]].subDefVal);L.push(null!=F?F.split(","):[])}x.dependentPropsDefVal=D;x.dependentPropsVals=L}p.appendChild(n(B,M,x,C,G));C=!C}}for(t=0;t<v.length;t++)for(x=v[t],d=x.parentRow,c=0;c<x.values.length;c++)B=n(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size},
+0==c%2,x.flipBkg),d.parentNode.insertBefore(B,d.nextSibling),d=B;b.appendChild(p);y();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,g=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";
+b.style.position="relative";b.appendChild(e);var f="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.position="relative";l.style.textAlign="center";l.style.width="210px";for(var k=[],m=0;m<this.defaultColorSchemes.length;m++){var n=document.createElement("div");n.style.display="inline-block";n.style.width=
+"6px";n.style.height="6px";n.style.marginLeft="4px";n.style.marginRight="3px";n.style.borderRadius="3px";n.style.cursor="pointer";n.style.background="transparent";n.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(n,"click",mxUtils.bind(this,function(){q(b)}))})(m);k.push(n);l.appendChild(n)}var q=mxUtils.bind(this,function(b){null!=k[b]&&(null!=this.format.currentScheme&&null!=k[this.format.currentScheme]&&(k[this.format.currentScheme].style.background="transparent"),
+this.format.currentScheme=b,u(this.defaultColorSchemes[this.format.currentScheme]),k[this.format.currentScheme].style.background="#84d7ff")}),u=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,function(d){g.getModel().beginUpdate();try{for(var e=c.getSelectionState().cells,l=0;l<e.length;l++){for(var k=g.getModel().getStyle(e[l]),m=0;m<f.length;m++)k=mxUtils.removeStylename(k,f[m]);var n=g.getModel().isVertex(e[l])?g.defaultVertexStyle:g.defaultEdgeStyle;
+null!=b?(mxEvent.isShiftDown(d)||(k=""==b.fill?mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,null)),k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(d)||mxClient.IS_MAC&&mxEvent.isMetaDown(d)||!g.getModel().isVertex(e[l])||(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,b.font||mxUtils.getValue(n,
+mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(d)||(k=""==b.stroke?mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,null)))):(k=mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,"#ffffff")),k=mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,"#000000")),k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,
+mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),g.getModel().isVertex(e[l])&&(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FONTCOLOR,null))));g.getModel().setStyle(e[l],k)}}finally{g.getModel().endUpdate()}}));d.className="geStyleButton";d.style.width="36px";d.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";d.style.margin="0px 6px 6px 0px";if(null!=b){var l="1"==urlParams.sketch?"2px solid":"1px solid";null!=b.gradient?mxClient.IS_IE&&
+10>document.documentMode?d.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":d.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?d.style.background="url('"+Dialog.prototype.noColorImage+"')":d.style.backgroundColor=""==b.fill?mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff"):b.fill||mxUtils.getValue(g.defaultVertexStyle,
+mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff");d.style.border=b.stroke==mxConstants.NONE?l+" transparent":""==b.stroke?l+" "+mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor):l+" "+(b.stroke||mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor));null!=b.title&&d.setAttribute("title",b.title)}else{var l=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,
+"#ffffff"),k=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");d.style.backgroundColor=l;d.style.border="1px solid "+k}d.style.borderRadius="0";e.appendChild(d)});e.innerHTML="";for(var l=0;l<b.length;l++)0<l&&0==mxUtils.mod(l,4)&&mxUtils.br(e),d(b[l])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):q(this.format.currentScheme);var m=10>=this.defaultColorSchemes.length?28:8,p=document.createElement("div");p.style.cssText="position:absolute;left:10px;top:8px;bottom:"+
+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));
+var v=document.createElement("div");v.style.cssText="position:absolute;left:202px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";1<this.defaultColorSchemes.length&&
+(b.appendChild(p),b.appendChild(v));mxEvent.addListener(v,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));d(p);d(v);u(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(l);return b};StyleFormatPanel.prototype.addEditOps=function(b){var d=this.editorUi.getSelectionState(),c=this.editorUi.editor.graph,g=null;1==d.cells.length&&(g=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,
+function(b){this.editorUi.actions.get("editStyle").funct()})),g.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),g.style.width="210px",g.style.marginBottom="2px",b.appendChild(g));c=1==d.cells.length?c.view.getState(d.cells[0]):null;null!=c&&null!=c.shape&&null!=c.shape.stencil?(d=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editShape").funct()})),d.setAttribute("title",mxResources.get("editShape")),
+d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),b.appendChild(d)):d.image&&0<d.cells.length&&(d=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(b){this.editorUi.actions.get("image").funct()})),d.setAttribute("title",mxResources.get("editImage")),d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),b.appendChild(d));return b}}Graph.customFontElements=
+{};Graph.recentCustomFonts={};Graph.isGoogleFontUrl=function(b){return b.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS};Graph.isCssFontUrl=function(b){return Graph.isGoogleFontUrl(b)};Graph.createFontElement=function(b,d){var c;Graph.isCssFontUrl(d)?(c=document.createElement("link"),c.setAttribute("rel","stylesheet"),c.setAttribute("type","text/css"),c.setAttribute("charset","UTF-8"),c.setAttribute("href",d)):(c=document.createElement("style"),mxUtils.write(c,'@font-face {\nfont-family: "'+
+b+'";\nsrc: url("'+d+'");\n}'));return c};Graph.addFont=function(b,d,c){if(null!=b&&0<b.length&&null!=d&&0<d.length){var g=b.toLowerCase();if("helvetica"!=g&&"arial"!=b&&"sans-serif"!=g){var e=Graph.customFontElements[g];null!=e&&e.url!=d&&(e.elt.parentNode.removeChild(e.elt),e=null);null==e?(e=d,"http:"==d.substring(0,5)&&(e=PROXY_URL+"?url="+encodeURIComponent(d)),e={name:b,url:d,elt:Graph.createFontElement(b,e)},Graph.customFontElements[g]=e,Graph.recentCustomFonts[g]=e,d=document.getElementsByTagName("head")[0],
+null!=c&&("link"==e.elt.nodeName.toLowerCase()?(e.elt.onload=c,e.elt.onerror=c):c()),null!=d&&d.appendChild(e.elt)):null!=c&&c()}else null!=c&&c()}else null!=c&&c();return b};Graph.getFontUrl=function(b,d){var c=Graph.customFontElements[b.toLowerCase()];null!=c&&(d=c.url);return d};Graph.processFontAttributes=function(b){b=b.getElementsByTagName("*");for(var d=0;d<b.length;d++){var c=b[d].getAttribute("data-font-src");if(null!=c){var g="FONT"==b[d].nodeName?b[d].getAttribute("face"):b[d].style.fontFamily;
+null!=g&&Graph.addFont(g,c)}}};Graph.processFontStyle=function(b){if(null!=b){var d=mxUtils.getValue(b,"fontSource",null);if(null!=d){var c=mxUtils.getValue(b,mxConstants.STYLE_FONTFAMILY,null);null!=c&&Graph.addFont(c,decodeURIComponent(d))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";
+Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;Graph.prototype.defaultMathEnabled=!1;var y=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}y.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var d=null;mxEvent.addListener(this.container,"mouseenter",
+b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){d=null});this.isMouseInsertPoint=function(){return null!=d};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=d?this.getPointForEvent(d):c.apply(this,arguments)};var g=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var d=this.graph.getCellStyle(b);if(null!=d&&"rack"==d.childLayout){var c=new mxStackLayout(this.graph,!1);c.gridSize=null!=d.rackUnitSize?
+parseFloat(d.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;c.marginLeft=d.marginLeft||0;c.marginRight=d.marginRight||0;c.marginTop=d.marginTop||0;c.marginBottom=d.marginBottom||0;c.allowGaps=d.allowGaps||0;c.horizontal="1"==mxUtils.getValue(d,"horizontalRack","0");c.resizeParent=!1;c.fill=!0;return c}return g.apply(this,arguments)};this.updateGlobalUrlVariables()};var x=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b,d){return Graph.processFontStyle(x.apply(this,
+arguments))};var F=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,f,l,k,m,n,q){F.apply(this,arguments);Graph.processFontAttributes(q)};var H=mxText.prototype.redraw;mxText.prototype.redraw=function(){H.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function g(){for(var b=l.getSelectionCells(),d=[],c=0;c<b.length;c++)l.isCellVisible(b[c])&&
+d.push(b[c]);l.setSelectionCells(d)}function e(b){l.hiddenTags=b?[]:k.slice();g();l.refresh()}function f(b,c){n.innerHTML="";if(0<b.length){var f=document.createElement("table");f.setAttribute("cellpadding","2");f.style.boxSizing="border-box";f.style.tableLayout="fixed";f.style.width="100%";var m=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var f=0>mxUtils.indexOf(l.hiddenTags,b),n=document.createElement("tr"),q=document.createElement("td");q.style.align=
+"center";q.style.width="16px";var u=document.createElement("img");u.setAttribute("src",f?Editor.visibleImage:Editor.hiddenImage);u.setAttribute("title",mxResources.get(f?"hideIt":"show",[b]));mxUtils.setOpacity(u,f?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";if(d||Editor.isDarkMode())u.style.filter="invert(100%)";q.appendChild(u);mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(l.hiddenTags,b);mxEvent.isShiftDown(d)?e(0<=mxUtils.indexOf(l.hiddenTags,
+b)):(0>c?l.hiddenTags.push(b):0<=c&&l.hiddenTags.splice(c,1),g(),l.refresh());mxEvent.consume(d)});n.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,f?100:40);q.appendChild(a);mxEvent.addListener(q,"click",
+function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=l.getCellsForTags([b],null,null,!0);l.isEnabled()?l.setSelectionCells(c):l.highlightCells(c)}else if(f&&0<l.hiddenTags.length)e(!0);else{var c=k.slice(),m=mxUtils.indexOf(c,b);c.splice(m,1);l.hiddenTags=c;g();l.refresh()}mxEvent.consume(d)});n.appendChild(q);if(l.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==c){q.style.align="center";q.style.width="16px";u=document.createElement("img");
+u.setAttribute("src",Editor.crossImage);u.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(u,f?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";if(d||Editor.isDarkMode())u.style.filter="invert(100%)";mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(k,b);0<=c&&k.splice(c,1);l.removeTagsForCells(l.model.getDescendants(l.model.getRoot()),[b]);l.refresh();mxEvent.consume(d)});q.appendChild(u)}else{var p=document.createElement("input");
+p.setAttribute("type","checkbox");p.style.margin="0px";p.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);p.checked=p.defaultChecked;p.style.background="transparent";p.setAttribute("title",mxResources.get(p.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(p,"change",function(d){p.checked?l.addTagsForCells(l.getSelectionCells(),[b]):l.removeTagsForCells(l.getSelectionCells(),[b]);mxEvent.consume(d)});q.appendChild(p)}n.appendChild(q)}m.appendChild(n)})(b[q]);f.appendChild(m);n.appendChild(f)}}
+var l=this,k=l.hiddenTags.slice(),m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height="100%";var n=document.createElement("div");n.style.boxSizing="border-box";n.style.borderRadius="4px";n.style.userSelect="none";n.style.overflow="auto";n.style.position="absolute";n.style.left="10px";n.style.right="10px";n.style.top="10px";n.style.border=l.isEnabled()?"1px solid #808080":"none";n.style.bottom=l.isEnabled()?"48px":"10px";m.appendChild(n);
+var q=mxUtils.button(mxResources.get("reset"),function(b){l.hiddenTags=[];mxEvent.isShiftDown(b)||(k=l.hiddenTags.slice());g();l.refresh()});q.setAttribute("title",mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var u=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(k,function(b){k=b;p()})});u.setAttribute("title",mxResources.get("add"));u.className="geBtn";u.style.margin="0";l.addListener(mxEvent.ROOT,function(){k=l.hiddenTags.slice()});var p=mxUtils.bind(this,
+function(d,c){if(b()){for(var g=l.getAllTags(),e=0;e<g.length;e++)0>mxUtils.indexOf(k,g[e])&&k.push(g[e]);k.sort();l.isSelectionEmpty()?f(k):f(k,l.getCommonTagsForCells(l.getSelectionCells()))}});l.selectionModel.addListener(mxEvent.CHANGE,p);l.model.addListener(mxEvent.CHANGE,p);l.addListener(mxEvent.REFRESH,p);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";
+v.style.right="10px";v.style.left="10px";l.isEnabled()&&(v.appendChild(q),v.appendChild(u),m.appendChild(v));return{div:m,refresh:p}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=
+Graph.getFontUrl(b,d);for(var g=0;g<c.length;g++)c[g].getAttribute("face")==b&&c[g].getAttribute("data-font-src")!=d&&c[g].setAttribute("data-font-src",d)}};var z=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return z.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=
+JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(B){null!=window.console&&console.log("Error in vars URL parameter: "+B)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var D=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=D.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=
+function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var N=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,g,e,f,l,k,m,n,q,u,p,v){var x=null,t=null,z=null;u||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.shapeForegroundColor,z=this.shapeBackgroundColor,this.shapeForegroundColor=
+"darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var y=N.apply(this,arguments),C=this.getCustomFonts();if(q&&0<C.length){var M=y.ownerDocument,B=null!=M.createElementNS?M.createElementNS(mxConstants.NS_SVG,"style"):M.createElement("style");null!=M.setAttributeNS?B.setAttributeNS("type","text/css"):B.setAttribute("type","text/css");for(var G=
+"",L="",D=0;D<C.length;D++){var I=C[D].name,F=C[D].url;Graph.isCssFontUrl(F)?G+="@import url("+F+");\n":L+='@font-face {\nfont-family: "'+I+'";\nsrc: url("'+F+'");\n}\n'}B.appendChild(M.createTextNode(G+L));y.getElementsByTagName("defs")[0].appendChild(B)}null!=x&&(this.shapeBackgroundColor=z,this.shapeForegroundColor=t,this.stylesheet=x,this.refresh());return y};var E=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=E.apply(this,arguments);if(this.mathEnabled){var d=
b.drawText;b.drawText=function(b,c){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var g=b.text.getContentNode();if(null!=g){g=g.cloneNode(!0);if(g.getElementsByTagNameNS)for(var e=g.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=g.innerHTML&&(e=b.text.value,b.text.value=g.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,
arguments)}}return b};var J=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){J.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||
this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var C=Graph.prototype.refresh;Graph.prototype.refresh=function(){C.apply(this,
arguments);this.refreshBackgroundImage()};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var K=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){K.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=
b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,d){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var c=!1,g=0,e=0,f=mxUtils.bind(this,function(){c||(c=!0,this.model.beginUpdate())}),l=mxUtils.bind(this,
-function(){c&&(c=!1,this.model.endUpdate())}),m=mxUtils.bind(this,function(){0<g&&g--;0==g&&k()}),k=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,n=b[e++],q=[];if(null!=n.open)if(l(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;m()}),g++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,
-""!=n.wait?parseInt(n.wait):1E3),l());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,m,c?0:n.fadeIn.delay));null!=n.fadeOut&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,m,c?0:n.fadeOut.delay));null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,
+function(){c&&(c=!1,this.model.endUpdate())}),k=mxUtils.bind(this,function(){0<g&&g--;0==g&&m()}),m=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,n=b[e++],q=[];if(null!=n.open)if(l(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),g++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,
+""!=n.wait?parseInt(n.wait):1E3),l());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,k,c?0:n.fadeIn.delay));null!=n.fadeOut&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,k,c?0:n.fadeOut.delay));null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,
!0),!0)));null!=n.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,!0),!1)));null!=n.toggle&&(f(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){f();var u=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(u),1);this.setCellsVisible(u,!0)}null!=n.hide&&(f(),u=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(u),0),this.setCellsVisible(u,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&
(f(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(f(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));u=[];null!=n.select&&this.isEnabled()&&(u=this.getCellsForAction(n.select),this.setSelectionCells(u));null!=n.highlight&&(u=this.getCellsForAction(n.highlight),this.highlightCells(u,n.highlight.color,n.highlight.duration,n.highlight.opacity));
-null!=n.scroll&&(u=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<u.length&&this.scrollCellToVisible(u[0]);if(null!=n.tags){u=[];null!=n.tags.hidden&&(u=u.concat(n.tags.hidden));if(null!=n.tags.visible)for(var p=this.getAllTags(),v=0;v<p.length;v++)0>mxUtils.indexOf(n.tags.visible,p[v])&&0>mxUtils.indexOf(u,p[v])&&u.push(p[v]);this.hiddenTags=u;this.refresh()}0<q.length&&(g++,this.executeAnimations(q,m,c?1:n.steps,c?0:n.delay));0==g?k():l()}else this.stoppingCustomActions=
-this.executingCustomActions=!1,l(),null!=d&&d()});k()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){var c=this.getLinkForCell(d);null!=c&&"data:action/json,"==c.substring(0,17)&&this.setLinkForCell(d,this.updateCustomLink(b,c));if(this.isHtmlLabel(d)){var g=document.createElement("div");g.innerHTML=this.sanitizeHtml(this.getLabel(d));for(var e=g.getElementsByTagName("a"),f=!1,l=0;l<e.length;l++)c=e[l].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(e[l].setAttribute("href",
+null!=n.scroll&&(u=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<u.length&&this.scrollCellToVisible(u[0]);if(null!=n.tags){u=[];null!=n.tags.hidden&&(u=u.concat(n.tags.hidden));if(null!=n.tags.visible)for(var p=this.getAllTags(),v=0;v<p.length;v++)0>mxUtils.indexOf(n.tags.visible,p[v])&&0>mxUtils.indexOf(u,p[v])&&u.push(p[v]);this.hiddenTags=u;this.refresh()}0<q.length&&(g++,this.executeAnimations(q,k,c?1:n.steps,c?0:n.delay));0==g?m():l()}else this.stoppingCustomActions=
+this.executingCustomActions=!1,l(),null!=d&&d()});m()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){var c=this.getLinkForCell(d);null!=c&&"data:action/json,"==c.substring(0,17)&&this.setLinkForCell(d,this.updateCustomLink(b,c));if(this.isHtmlLabel(d)){var g=document.createElement("div");g.innerHTML=this.sanitizeHtml(this.getLabel(d));for(var e=g.getElementsByTagName("a"),f=!1,l=0;l<e.length;l++)c=e[l].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(e[l].setAttribute("href",
this.updateCustomLink(b,c)),f=!0);f&&this.labelChanged(d,g.innerHTML)}};Graph.prototype.updateCustomLink=function(b,d){if("data:action/json,"==d.substring(0,17))try{var c=JSON.parse(d.substring(17));null!=c.actions&&(this.updateCustomLinkActions(b,c.actions),d="data:action/json,"+JSON.stringify(c))}catch(ca){}return d};Graph.prototype.updateCustomLinkActions=function(b,d){for(var c=0;c<d.length;c++){var g=d[c],e;for(e in g)this.updateCustomLinkAction(b,g[e],"cells"),this.updateCustomLinkAction(b,
g[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,d,c){if(null!=d&&null!=d[c]){for(var g=[],e=0;e<d[c].length;e++)if("*"==d[c][e])g.push(d[c][e]);else{var f=b[d[c][e]];null!=f?""!=f&&g.push(f):g.push(d[c][e])}d[c]=g}};Graph.prototype.getCellsForAction=function(b,d){var c=this.getCellsById(b.cells).concat(this.getCellsForTags(b.tags,null,d));if(null!=b.excludeCells){for(var g=[],e=0;e<c.length;e++)0>b.excludeCells.indexOf(c[e].id)&&g.push(c[e]);c=g}return c};Graph.prototype.getCellsById=
-function(b){var d=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var g=this.model.getRoot(),d=d.concat(this.model.filterDescendants(function(b){return b!=g},g));else{var e=this.model.getCell(b[c]);null!=e&&d.push(e)}return d};var M=Graph.prototype.isCellVisible;Graph.prototype.isCellVisible=function(b){return M.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};Graph.prototype.isAllTagsHidden=function(b){if(null==b||0==b.length||0==this.hiddenTags.length)return!1;b=b.split(" ");
-if(b.length>this.hiddenTags.length)return!1;for(var d=0;d<b.length;d++)if(0>mxUtils.indexOf(this.hiddenTags,b[d]))return!1;return!0};Graph.prototype.getCellsForTags=function(b,d,c,g){var e=[];if(null!=b){d=null!=d?d:this.model.getDescendants(this.model.getRoot());for(var f=0,l={},m=0;m<b.length;m++)0<b[m].length&&(l[b[m]]=!0,f++);for(m=0;m<d.length;m++)if(c&&this.model.getParent(d[m])==this.model.root||this.model.isVertex(d[m])||this.model.isEdge(d[m])){var k=this.getTagsForCell(d[m]),n=!1;if(0<k.length&&
-(k=k.split(" "),k.length>=b.length)){for(var q=n=0;q<k.length&&n<f;q++)null!=l[k[q]]&&n++;n=n==f}n&&(1!=g||this.isCellVisible(d[m]))&&e.push(d[m])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};Graph.prototype.getCommonTagsForCells=function(b){for(var d=null,c=[],g=0;g<b.length;g++){var e=this.getTagsForCell(b[g]),c=[];if(0<e.length){for(var e=e.split(" "),f={},l=0;l<e.length;l++)if(null==d||null!=d[e[l]])f[e[l]]=!0,c.push(e[l]);
+function(b){var d=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var g=this.model.getRoot(),d=d.concat(this.model.filterDescendants(function(b){return b!=g},g));else{var e=this.model.getCell(b[c]);null!=e&&d.push(e)}return d};var L=Graph.prototype.isCellVisible;Graph.prototype.isCellVisible=function(b){return L.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};Graph.prototype.isAllTagsHidden=function(b){if(null==b||0==b.length||0==this.hiddenTags.length)return!1;b=b.split(" ");
+if(b.length>this.hiddenTags.length)return!1;for(var d=0;d<b.length;d++)if(0>mxUtils.indexOf(this.hiddenTags,b[d]))return!1;return!0};Graph.prototype.getCellsForTags=function(b,d,c,g){var e=[];if(null!=b){d=null!=d?d:this.model.getDescendants(this.model.getRoot());for(var f=0,l={},k=0;k<b.length;k++)0<b[k].length&&(l[b[k]]=!0,f++);for(k=0;k<d.length;k++)if(c&&this.model.getParent(d[k])==this.model.root||this.model.isVertex(d[k])||this.model.isEdge(d[k])){var m=this.getTagsForCell(d[k]),n=!1;if(0<m.length&&
+(m=m.split(" "),m.length>=b.length)){for(var q=n=0;q<m.length&&n<f;q++)null!=l[m[q]]&&n++;n=n==f}n&&(1!=g||this.isCellVisible(d[k]))&&e.push(d[k])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};Graph.prototype.getCommonTagsForCells=function(b){for(var d=null,c=[],g=0;g<b.length;g++){var e=this.getTagsForCell(b[g]),c=[];if(0<e.length){for(var e=e.split(" "),f={},l=0;l<e.length;l++)if(null==d||null!=d[e[l]])f[e[l]]=!0,c.push(e[l]);
d=f}else return[]}return c};Graph.prototype.getTagsForCells=function(b){for(var d=[],c={},g=0;g<b.length;g++){var e=this.getTagsForCell(b[g]);if(0<e.length)for(var e=e.split(" "),f=0;f<e.length;f++)null==c[e[f]]&&(c[e[f]]=!0,d.push(e[f]))}return d};Graph.prototype.getTagsForCell=function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){for(var g=this.getTagsForCell(b[c]),
-e=g.split(" "),f=!1,l=0;l<d.length;l++){var m=mxUtils.trim(d[l]);""!=m&&0>mxUtils.indexOf(e,m)&&(g=0<g.length?g+" "+m:m,f=!0)}f&&this.setAttributeForCell(b[c],"tags",g)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var g=this.getTagsForCell(b[c]);if(0<g.length){for(var e=g.split(" "),f=!1,l=0;l<d.length;l++){var m=mxUtils.indexOf(e,d[l]);0<=m&&(e.splice(m,1),f=!0)}f&&this.setAttributeForCell(b[c],
+e=g.split(" "),f=!1,l=0;l<d.length;l++){var k=mxUtils.trim(d[l]);""!=k&&0>mxUtils.indexOf(e,k)&&(g=0<g.length?g+" "+k:k,f=!0)}f&&this.setAttributeForCell(b[c],"tags",g)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var g=this.getTagsForCell(b[c]);if(0<g.length){for(var e=g.split(" "),f=!1,l=0;l<d.length;l++){var k=mxUtils.indexOf(e,d[l]);0<=k&&(e.splice(k,1),f=!0)}f&&this.setAttributeForCell(b[c],
"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)this.model.setVisible(b[d],!this.model.isVisible(b[d]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,d){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],d)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(b,d,c,g){for(var e=0;e<b.length;e++)this.highlightCell(b[e],
d,c,g)};Graph.prototype.highlightCell=function(b,d,c,g){d=null!=d?d:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;b=this.view.getState(b);if(null!=b){var e=Math.max(5,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+4),f=new mxCellHighlight(this,d,e,!1);null!=g&&(f.opacity=g);f.highlight(b);window.setTimeout(function(){null!=f.shape&&(mxUtils.setPrefixedStyle(f.shape.node.style,"transition","all 1200ms ease-in-out"),f.shape.node.style.opacity=0);window.setTimeout(function(){f.destroy()},
1200)},c)}};Graph.prototype.addSvgShadow=function(b,d,c,g){c=null!=c?c:!1;g=null!=g?g:!0;var e=b.ownerDocument,f=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");f.setAttribute("id",this.shadowId);var l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");l.setAttribute("in","SourceAlpha");l.setAttribute("stdDeviation",this.svgShadowBlur);l.setAttribute("result","blur");f.appendChild(l);l=null!=
@@ -3348,37 +3352,37 @@ mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js
"/mxBasic.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js",STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=
[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.aws4=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.aws4b=[SHAPES_PATH+"/mxAWS4.js",
STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+
-"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var Z=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,f,l,m,k,n){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&
-mxStencilRegistry.getStencil(q)}return Z.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(m,Math.max(parseInt(v.value),parseInt(p.value))));p.value=Math.max(1,Math.min(m,Math.min(parseInt(v.value),parseInt(p.value))))}function g(d){function c(d,c,f){var l=d.useCssTransforms,m=d.currentTranslate,k=d.currentScale,n=d.view.translate,q=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,
-d.view.translate=new mxPoint(0,0),d.view.scale=1);var u=d.getGraphBounds(),p=0,v=0,x=E.get(),t=1/d.pageScale,C=y.checked;if(C)var t=parseInt(O.value),L=parseInt(I.value),t=Math.min(x.height*L/(u.height/d.view.scale),x.width*t/(u.width/d.view.scale));else t=parseInt(z.value)/(100*d.pageScale),isNaN(t)&&(g=1/d.pageScale,z.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*g);x.height=Math.ceil(x.height*g);t*=g;!C&&d.pageVisible?(u=d.getPageLayout(),p-=u.x*x.width,v-=u.y*x.height):
-C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,p,v,C);c.pageSelector=!1;c.mathEnabled=!1;p=b.getCurrentFile();null!=p&&(c.title=p.getTitle());var D=c.writeHead;c.writeHead=function(c){D.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),c.writeln("@media print {"),c.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),c.writeln("}"),
+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var Z=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,f,l,k,m,n){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&
+mxStencilRegistry.getStencil(q)}return Z.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(k,Math.max(parseInt(v.value),parseInt(p.value))));p.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(p.value))))}function g(d){function c(d,c,f){var l=d.useCssTransforms,k=d.currentTranslate,m=d.currentScale,n=d.view.translate,q=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,
+d.view.translate=new mxPoint(0,0),d.view.scale=1);var u=d.getGraphBounds(),p=0,v=0,x=E.get(),t=1/d.pageScale,C=y.checked;if(C)var t=parseInt(K.value),M=parseInt(I.value),t=Math.min(x.height*M/(u.height/d.view.scale),x.width*t/(u.width/d.view.scale));else t=parseInt(z.value)/(100*d.pageScale),isNaN(t)&&(g=1/d.pageScale,z.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*g);x.height=Math.ceil(x.height*g);t*=g;!C&&d.pageVisible?(u=d.getPageLayout(),p-=u.x*x.width,v-=u.y*x.height):
+C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,p,v,C);c.pageSelector=!1;c.mathEnabled=!1;p=b.getCurrentFile();null!=p&&(c.title=p.getTitle());var L=c.writeHead;c.writeHead=function(c){L.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),c.writeln("@media print {"),c.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),c.writeln("}"),
c.writeln("</style>"));null!=b.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(b.editor.fontCss),c.writeln("</style>"));for(var g=d.getCustomFonts(),e=0;e<g.length;e++){var f=g[e].name,l=g[e].url;Graph.isCssFontUrl(l)?c.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(f)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};
-if("undefined"!==typeof MathJax){var M=c.renderPage;c.renderPage=function(d,c,g,e,f,l){var m=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var k=M.apply(this,arguments);mxClient.NO_FO=m;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:k.className="geDisableMathJax";return k}}p=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(p=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
+if("undefined"!==typeof MathJax){var D=c.renderPage;c.renderPage=function(d,c,g,e,f,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=D.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}p=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(p=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
e.refresh());c.open(null,null,f,!0);e.enableFlowAnimation=v;null!=p&&(e.stylesheet=p,e.refresh())}else{x=d.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=C;c.appendGraph(d,t,p,v,f,!0);f=d.getCustomFonts();if(null!=c.wnd)for(p=0;p<f.length;p++)v=f[p].name,C=f[p].url,Graph.isCssFontUrl(C)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(C)+'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),
-c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(C)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=m,d.currentScale=k,d.view.translate=n,d.view.scale=q);return c}var g=parseInt(N.value)/100;isNaN(g)&&(g=1,N.value="100 %");var g=.75*g,f=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(f=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=p.value,m=v.value,n=!q.checked,
-u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,m,y.checked,O.value,I.value,parseInt(z.value)/100,parseInt(N.value)/100,E.get());else{n&&(n=l==k&&m==k);if(!n&&null!=b.pages&&b.pages.length){var x=0,n=b.pages.length-1;q.checked||(x=parseInt(l)-1,n=parseInt(m)-1);for(var t=x;t<=n;t++){var C=b.pages[t],l=C==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),m=!0,x=!1,L=null,D=null;null==C.viewState&&null==C.root&&b.updatePageRoot(C);null!=C.viewState&&
-(m=C.viewState.pageVisible,x=C.viewState.mathEnabled,L=C.viewState.background,D=C.viewState.backgroundImage,l.extFonts=C.viewState.extFonts);l.background=L;l.backgroundImage=null!=D?new mxImage(D.src,D.width,D.height):null;l.pageVisible=m;l.mathEnabled=x;var M=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?C.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:M.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(C);l.model.setRoot(C.root)}u=
+c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(C)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=n,d.view.scale=q);return c}var g=parseInt(N.value)/100;isNaN(g)&&(g=1,N.value="100 %");var g=.75*g,f=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(f=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=p.value,k=v.value,n=!q.checked,
+u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,y.checked,K.value,I.value,parseInt(z.value)/100,parseInt(N.value)/100,E.get());else{n&&(n=l==m&&k==m);if(!n&&null!=b.pages&&b.pages.length){var x=0,n=b.pages.length-1;q.checked||(x=parseInt(l)-1,n=parseInt(k)-1);for(var t=x;t<=n;t++){var C=b.pages[t],l=C==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,M=null,L=null;null==C.viewState&&null==C.root&&b.updatePageRoot(C);null!=C.viewState&&
+(k=C.viewState.pageVisible,x=C.viewState.mathEnabled,M=C.viewState.background,L=C.viewState.backgroundImage,l.extFonts=C.viewState.extFonts);l.background=M;l.backgroundImage=null!=L?new mxImage(L.src,L.width,L.height):null;l.pageVisible=k;l.mathEnabled=x;var D=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?C.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:D.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(C);l.model.setRoot(C.root)}u=
c(l,u,t!=n);l!=e&&l.container.parentNode.removeChild(l.container)}}else u=c(e);null==u?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(u.mathEnabled&&(n=u.wnd.document,d&&(u.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),u.closeDocument(),!u.mathEnabled&&d&&PrintDialog.printPreview(u));null!=f&&(e.stylesheet=f,e.refresh())}}var e=b.editor.graph,f=document.createElement("div"),l=document.createElement("h3");
-l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,d||mxResources.get("print"));f.appendChild(l);var m=1,k=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");n.appendChild(q);l=document.createElement("span");
+l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,d||mxResources.get("print"));f.appendChild(l);var k=1,m=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");n.appendChild(q);l=document.createElement("span");
mxUtils.write(l,mxResources.get("printAllPages"));n.appendChild(l);mxUtils.br(n);var u=q.cloneNode(!0);q.setAttribute("checked","checked");u.setAttribute("value","range");n.appendChild(u);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");n.appendChild(l);var p=document.createElement("input");p.style.cssText="margin:0 8px 0 8px;";p.setAttribute("value","1");p.setAttribute("type","number");p.setAttribute("min","1");p.style.width="50px";n.appendChild(p);l=document.createElement("span");
-mxUtils.write(l,mxResources.get("to"));n.appendChild(l);var v=p.cloneNode(!0);n.appendChild(v);mxEvent.addListener(p,"focus",function(){u.checked=!0});mxEvent.addListener(v,"focus",function(){u.checked=!0});mxEvent.addListener(p,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(m=b.pages.length,null!=b.currentPage))for(l=0;l<b.pages.length;l++)if(b.currentPage==b.pages[l]){k=l+1;p.value=k;v.value=k;break}p.setAttribute("max",m);v.setAttribute("max",m);b.isPagesEnabled()?1<m&&(f.appendChild(n),
+mxUtils.write(l,mxResources.get("to"));n.appendChild(l);var v=p.cloneNode(!0);n.appendChild(v);mxEvent.addListener(p,"focus",function(){u.checked=!0});mxEvent.addListener(v,"focus",function(){u.checked=!0});mxEvent.addListener(p,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(k=b.pages.length,null!=b.currentPage))for(l=0;l<b.pages.length;l++)if(b.currentPage==b.pages[l]){m=l+1;p.value=m;v.value=m;break}p.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(f.appendChild(n),
u.checked=!0):u.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));x.appendChild(l);var z=document.createElement("input");z.style.cssText="margin:0 8px 0 8px;";z.setAttribute("value","100 %");z.style.width="50px";x.appendChild(z);
-mxEvent.addListener(z,"focus",function(){t.checked=!0});f.appendChild(x);var n=n.cloneNode(!1),y=t.cloneNode(!0);y.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(y);n.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),L=document.createElement("tr"),D=L.cloneNode(!0),M=document.createElement("td"),
-F=M.cloneNode(!0),G=M.cloneNode(!0),K=M.cloneNode(!0),H=M.cloneNode(!0),J=M.cloneNode(!0);M.style.textAlign="right";K.style.textAlign="right";mxUtils.write(M,mxResources.get("fitTo"));var O=document.createElement("input");O.style.cssText="margin:0 8px 0 8px;";O.setAttribute("value","1");O.setAttribute("min","1");O.setAttribute("type","number");O.style.width="40px";F.appendChild(O);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));G.appendChild(l);mxUtils.write(K,
-mxResources.get("fitToBy"));var I=O.cloneNode(!0);H.appendChild(I);mxEvent.addListener(O,"focus",function(){y.checked=!0});mxEvent.addListener(I,"focus",function(){y.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));J.appendChild(l);L.appendChild(M);L.appendChild(F);L.appendChild(G);D.appendChild(K);D.appendChild(H);D.appendChild(J);C.appendChild(L);C.appendChild(D);x.appendChild(C);n.appendChild(x);f.appendChild(n);n=document.createElement("div");l=
+mxEvent.addListener(z,"focus",function(){t.checked=!0});f.appendChild(x);var n=n.cloneNode(!1),y=t.cloneNode(!0);y.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(y);n.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),M=document.createElement("tr"),D=M.cloneNode(!0),L=document.createElement("td"),
+F=L.cloneNode(!0),H=L.cloneNode(!0),G=L.cloneNode(!0),P=L.cloneNode(!0),J=L.cloneNode(!0);L.style.textAlign="right";G.style.textAlign="right";mxUtils.write(L,mxResources.get("fitTo"));var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";K.setAttribute("value","1");K.setAttribute("min","1");K.setAttribute("type","number");K.style.width="40px";F.appendChild(K);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));H.appendChild(l);mxUtils.write(G,
+mxResources.get("fitToBy"));var I=K.cloneNode(!0);P.appendChild(I);mxEvent.addListener(K,"focus",function(){y.checked=!0});mxEvent.addListener(I,"focus",function(){y.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));J.appendChild(l);M.appendChild(L);M.appendChild(F);M.appendChild(H);D.appendChild(G);D.appendChild(P);D.appendChild(J);C.appendChild(M);C.appendChild(D);x.appendChild(C);n.appendChild(x);f.appendChild(n);n=document.createElement("div");l=
document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));n.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var E=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));n.appendChild(l);var N=document.createElement("input");N.style.cssText="margin:0 8px 0 8px;";
N.setAttribute("value","100 %");N.style.width="60px";n.appendChild(N);f.appendChild(n);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";b.editor.cancelFirst&&l.appendChild(n);b.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",l.appendChild(x));PrintDialog.previewEnabled&&(x=
-mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();g(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();g(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(n);f.appendChild(l);this.container=f};var L=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
-this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}null!=this.format&&(this.page.viewState.pageFormat=this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else L.apply(this,arguments),null!=this.mathEnabled&&
-this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var O=document.createElement("canvas"),U=new Image;U.onload=function(){try{O.getContext("2d").drawImage(U,0,0);var b=O.toDataURL("image/png");Editor.prototype.useCanvasForExport=
+mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();g(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();g(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(n);f.appendChild(l);this.container=f};var M=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
+this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}null!=this.format&&(this.page.viewState.pageFormat=this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else M.apply(this,arguments),null!=this.mathEnabled&&
+this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var P=document.createElement("canvas"),U=new Image;U.onload=function(){try{P.getContext("2d").drawImage(U,0,0);var b=P.toDataURL("image/png");Editor.prototype.useCanvasForExport=
null!=b&&6<b.length}catch(I){}};U.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(G){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};b.afterDecode=function(b,e,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="16.0.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=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="16.0.3";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=
!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,
-messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(b,c,e,f,m,k,u){k=null!=k?k:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
-"1"!=urlParams.dev)try{if(b!=EditorUi.lastErrorMessage&&(null==b||null==c||-1==b.indexOf("Script error")&&-1==b.indexOf("extension"))&&null!=b&&0>b.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=b;var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";m=null!=m?m:Error(b);(new Image).src=d+"/log?severity="+k+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(b)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(e)+(null!=f?":colno:"+
-encodeURIComponent(f):"")+(null!=m&&null!=m.stack?"&stack="+encodeURIComponent(m.stack):"")}}catch(y){}try{u||null==window.console||console.error(k,b,c,e,f,m)}catch(y){}};EditorUi.logEvent=function(b){if("1"==urlParams.dev)EditorUi.debug("logEvent",b);else if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):"")}catch(l){}};EditorUi.sendReport=
+messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(b,c,e,f,k,n,u){n=null!=n?n:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
+"1"!=urlParams.dev)try{if(b!=EditorUi.lastErrorMessage&&(null==b||null==c||-1==b.indexOf("Script error")&&-1==b.indexOf("extension"))&&null!=b&&0>b.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=b;var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";k=null!=k?k:Error(b);(new Image).src=d+"/log?severity="+n+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(b)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(e)+(null!=f?":colno:"+
+encodeURIComponent(f):"")+(null!=k&&null!=k.stack?"&stack="+encodeURIComponent(k.stack):"")}}catch(y){}try{u||null==window.console||console.error(n,b,c,e,f,k)}catch(y){}};EditorUi.logEvent=function(b){if("1"==urlParams.dev)EditorUi.debug("logEvent",b);else if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):"")}catch(l){}};EditorUi.sendReport=
function(b,c){if("1"==urlParams.dev)EditorUi.debug("sendReport",b);else if(EditorUi.enableLogging)try{c=null!=c?c:5E4,b.length>c&&(b=b.substring(0,c)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(b))}catch(l){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var b=[(new Date).toISOString()],c=0;c<arguments.length;c++)null!=arguments[c]&&b.push(arguments[c]);
console.log.apply(console,b)}}catch(l){}};EditorUi.removeChildNodes=function(b){for(;null!=b.firstChild;)b.removeChild(b.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
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=
@@ -3386,20 +3390,20 @@ EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;Ed
e.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(m){}try{c=document.createElement("canvas");c.width=c.height=1;var f=c.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==f.match("image/jpeg")}catch(m){}})();EditorUi.prototype.openLink=
function(b,c,e){return this.editor.graph.openLink(b,c,e)};EditorUi.prototype.showSplash=function(b){};EditorUi.prototype.getLocalData=function(b,c){c(localStorage.getItem(b))};EditorUi.prototype.setLocalData=function(b,c,e){localStorage.setItem(b,c);null!=e&&e()};EditorUi.prototype.removeLocalData=function(b,c){localStorage.removeItem(b);c()};EditorUi.prototype.setMathEnabled=function(b){this.editor.graph.mathEnabled=b;this.editor.updateGraphComponents();this.editor.graph.refresh();this.editor.graph.defaultMathEnabled=
b;this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(b){return this.editor.graph.mathEnabled};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(b){return this.isOfflineApp()||!navigator.onLine||!b&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};EditorUi.prototype.createSpinner=function(b,c,e){var d=null==b||null==c;e=null!=e?e:24;var g=new Spinner({lines:12,length:e,width:Math.round(e/
-3),radius:Math.round(e/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=g.spin;g.spin=function(e,l){var m=!1;this.active||(f.call(this,e),this.active=!0,null!=l&&(d&&(c=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,b=document.body.clientWidth/2-2),m=document.createElement("div"),m.style.position="absolute",m.style.whiteSpace="nowrap",m.style.background="#4B4243",m.style.color="white",m.style.fontFamily=
-Editor.defaultHtmlFont,m.style.fontSize="9pt",m.style.padding="6px",m.style.paddingLeft="10px",m.style.paddingRight="10px",m.style.zIndex=2E9,m.style.left=Math.max(0,b)+"px",m.style.top=Math.max(0,c+70)+"px",mxUtils.setPrefixedStyle(m.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(m.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(m.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=l.substring(l.length-3,l.length)&&"!"!=l.charAt(l.length-1)&&(l+="..."),
-m.innerHTML=l,e.appendChild(m),g.status=m),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(e,l)}));this.stop();return b}),m=!0);return m};var l=g.stop;g.stop=function(){l.call(this);this.active=!1;null!=g.status&&null!=g.status.parentNode&&g.status.parentNode.removeChild(g.status);g.status=null};g.pause=function(){return function(){}};return g};EditorUi.prototype.isCompatibleString=function(b){try{var d=mxUtils.parseXml(b),c=this.editor.extractGraphModel(d.documentElement,
+3),radius:Math.round(e/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=g.spin;g.spin=function(e,l){var k=!1;this.active||(f.call(this,e),this.active=!0,null!=l&&(d&&(c=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,b=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=
+Editor.defaultHtmlFont,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,b)+"px",k.style.top=Math.max(0,c+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"),"..."!=l.substring(l.length-3,l.length)&&"!"!=l.charAt(l.length-1)&&(l+="..."),
+k.innerHTML=l,e.appendChild(k),g.status=k),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(e,l)}));this.stop();return b}),k=!0);return k};var l=g.stop;g.stop=function(){l.call(this);this.active=!1;null!=g.status&&null!=g.status.parentNode&&g.status.parentNode.removeChild(g.status);g.status=null};g.pause=function(){return function(){}};return g};EditorUi.prototype.isCompatibleString=function(b){try{var d=mxUtils.parseXml(b),c=this.editor.extractGraphModel(d.documentElement,
!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(q){}return!1};EditorUi.prototype.isVisioData=function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&4==b.charCodeAt(3)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&6==b.charCodeAt(3))};EditorUi.prototype.isRemoteVisioData=
function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||60==b.charCodeAt(0)&&63==b.charCodeAt(1)&&120==b.charCodeAt(2)&&109==b.charCodeAt(3)&&108==b.charCodeAt(3))};var b=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(d){var c=b.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var e=c.getFunction,
-f=this.editor.graph,m=this;c.getFunction=function(b){if(f.isSelectionEmpty()&&null!=m.pages&&0<m.pages.length){var d=m.getSelectedPageIndex();if(mxEvent.isShiftDown(b)){if(37==b.keyCode)return function(){0<d&&m.movePage(d,d-1)};if(38==b.keyCode)return function(){0<d&&m.movePage(d,0)};if(39==b.keyCode)return function(){d<m.pages.length-1&&m.movePage(d,d+1)};if(40==b.keyCode)return function(){d<m.pages.length-1&&m.movePage(d,m.pages.length-1)}}else if(mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)){if(37==
-b.keyCode)return function(){0<d&&m.selectNextPage(!1)};if(38==b.keyCode)return function(){0<d&&m.selectPage(m.pages[0])};if(39==b.keyCode)return function(){d<m.pages.length-1&&m.selectNextPage(!0)};if(40==b.keyCode)return function(){d<m.pages.length-1&&m.selectPage(m.pages[m.pages.length-1])}}}return e.apply(this,arguments)}}return c};var c=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var d=c.apply(this,arguments);if(null==d)try{var e=b.indexOf("&lt;mxfile ");
-if(0<=e){var f=b.lastIndexOf("&lt;/mxfile&gt;");f>e&&(d=b.substring(e,f+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var m=mxUtils.parseXml(b),k=this.editor.extractGraphModel(m.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),d=null!=k?mxUtils.getXml(k):""}catch(u){}return d};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var d=b.indexOf('<meta charset="utf-8">');0<=d&&(b=b.slice(0,d)+'<meta charset="utf-8"/>'+
+f=this.editor.graph,k=this;c.getFunction=function(b){if(f.isSelectionEmpty()&&null!=k.pages&&0<k.pages.length){var d=k.getSelectedPageIndex();if(mxEvent.isShiftDown(b)){if(37==b.keyCode)return function(){0<d&&k.movePage(d,d-1)};if(38==b.keyCode)return function(){0<d&&k.movePage(d,0)};if(39==b.keyCode)return function(){d<k.pages.length-1&&k.movePage(d,d+1)};if(40==b.keyCode)return function(){d<k.pages.length-1&&k.movePage(d,k.pages.length-1)}}else if(mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)){if(37==
+b.keyCode)return function(){0<d&&k.selectNextPage(!1)};if(38==b.keyCode)return function(){0<d&&k.selectPage(k.pages[0])};if(39==b.keyCode)return function(){d<k.pages.length-1&&k.selectNextPage(!0)};if(40==b.keyCode)return function(){d<k.pages.length-1&&k.selectPage(k.pages[k.pages.length-1])}}}return e.apply(this,arguments)}}return c};var c=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var d=c.apply(this,arguments);if(null==d)try{var e=b.indexOf("&lt;mxfile ");
+if(0<=e){var f=b.lastIndexOf("&lt;/mxfile&gt;");f>e&&(d=b.substring(e,f+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var k=mxUtils.parseXml(b),n=this.editor.extractGraphModel(k.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),d=null!=n?mxUtils.getXml(n):""}catch(u){}return d};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var d=b.indexOf('<meta charset="utf-8">');0<=d&&(b=b.slice(0,d)+'<meta charset="utf-8"/>'+
b.slice(d+23-1,b.length));b=Graph.zapGremlins(b)}return b};EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b){d=this.editor.graph;d.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,e=b.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<e.length||1==e.length&&e[0].hasAttribute("name")){this.fileNode=b;this.pages=
null!=this.pages?this.pages:[];for(var f=e.length-1;0<=f;f--){var k=this.updatePageRoot(new DiagramPage(e[f]));null==k.getName()&&k.setName(mxResources.get("pageWithNumber",[f+1]));d.model.execute(new ChangePage(this,k,0==f?k:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,
-this.currentPage,this.currentPage,0))),this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)d.model.execute(new ChangePage(this,c[f],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,c,e,f,m,k,u,p,t,x,F){c=null!=c?c:this.editor.graph;m=null!=m?m:!1;t=null!=t?t:!0;var d,g=null;null==e||e.getMode()==App.MODE_DEVICE||e.getMode()==App.MODE_BROWSER?d="_blank":g=d=f;if(null==b)return"";
-var l=b;if("mxfile"!=l.nodeName.toLowerCase()){if(F){var n=b.ownerDocument.createElement("diagram");n.setAttribute("id",Editor.guid());n.appendChild(b)}else{n=Graph.zapGremlins(mxUtils.getXml(b));l=Graph.compress(n);if(Graph.decompress(l)!=n)return n;n=b.ownerDocument.createElement("diagram");n.setAttribute("id",Editor.guid());mxUtils.setTextContent(n,l)}l=b.ownerDocument.createElement("mxfile");l.appendChild(n)}x?(l=l.cloneNode(!0),l.removeAttribute("modified"),l.removeAttribute("host"),l.removeAttribute("agent"),
+this.currentPage,this.currentPage,0))),this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)d.model.execute(new ChangePage(this,c[f],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,c,e,f,k,n,u,p,t,x,F){c=null!=c?c:this.editor.graph;k=null!=k?k:!1;t=null!=t?t:!0;var d,g=null;null==e||e.getMode()==App.MODE_DEVICE||e.getMode()==App.MODE_BROWSER?d="_blank":g=d=f;if(null==b)return"";
+var l=b;if("mxfile"!=l.nodeName.toLowerCase()){if(F){var m=b.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());m.appendChild(b)}else{m=Graph.zapGremlins(mxUtils.getXml(b));l=Graph.compress(m);if(Graph.decompress(l)!=m)return m;m=b.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());mxUtils.setTextContent(m,l)}l=b.ownerDocument.createElement("mxfile");l.appendChild(m)}x?(l=l.cloneNode(!0),l.removeAttribute("modified"),l.removeAttribute("host"),l.removeAttribute("agent"),
l.removeAttribute("etag"),l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("type")):(l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("pages"),l.removeAttribute("type"),mxClient.IS_CHROMEAPP?l.setAttribute("host","Chrome"):EditorUi.isElectronApp?l.setAttribute("host","Electron"):l.setAttribute("host",window.location.hostname),l.setAttribute("modified",(new Date).toISOString()),l.setAttribute("agent",
-navigator.appVersion),l.setAttribute("version",EditorUi.VERSION),l.setAttribute("etag",Editor.guid()),b=null!=e?e.getMode():this.mode,null!=b&&l.setAttribute("type",b),1<l.getElementsByTagName("diagram").length&&null!=this.pages&&l.setAttribute("pages",this.pages.length));F=F?mxUtils.getPrettyXml(l):mxUtils.getXml(l);if(!k&&!m&&(u||null!=e&&/(\.html)$/i.test(e.getTitle())))F=this.getHtml2(mxUtils.getXml(l),c,null!=e?e.getTitle():null,d,g);else if(k||!m&&null!=e&&/(\.svg)$/i.test(e.getTitle()))null==
+navigator.appVersion),l.setAttribute("version",EditorUi.VERSION),l.setAttribute("etag",Editor.guid()),b=null!=e?e.getMode():this.mode,null!=b&&l.setAttribute("type",b),1<l.getElementsByTagName("diagram").length&&null!=this.pages&&l.setAttribute("pages",this.pages.length));F=F?mxUtils.getPrettyXml(l):mxUtils.getXml(l);if(!n&&!k&&(u||null!=e&&/(\.html)$/i.test(e.getTitle())))F=this.getHtml2(mxUtils.getXml(l),c,null!=e?e.getTitle():null,d,g);else if(n||!k&&null!=e&&/(\.svg)$/i.test(e.getTitle()))null==
e||e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER||(f=null),F=this.getEmbeddedSvg(F,c,f,null,p,t,g);return F};EditorUi.prototype.getXmlFileData=function(b,c,e,f){b=null!=b?b:!0;c=null!=c?c:!1;e=null!=e?e:!Editor.compressXml;var d=this.editor.getGraphXml(b,f);if(b&&null!=this.fileNode&&null!=this.currentPage)if(b=function(b){var c=b.getElementsByTagName("mxGraphModel"),c=0<c.length?c[0]:null;null==c&&e?(c=mxUtils.trim(mxUtils.getTextContent(b)),b=b.cloneNode(!1),0<c.length&&(c=Graph.decompress(c),
null!=c&&0<c.length&&b.appendChild(mxUtils.parseXml(c).documentElement))):null==c||e?b=b.cloneNode(!0):(b=b.cloneNode(!1),mxUtils.setTextContent(b,Graph.compressNode(c)));d.appendChild(b)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(d)),d=this.fileNode.cloneNode(!1),c)b(this.currentPage.node);else for(c=0;c<this.pages.length;c++){var g=this.pages[c],l=g.node;if(g!=this.currentPage)if(g.needsUpdate){var k=new mxCodec(mxUtils.createXmlDocument()),
k=k.encode(new mxGraphModel(g.root));this.editor.graph.saveViewState(g.viewState,k,null,f);EditorUi.removeChildNodes(l);mxUtils.setTextContent(l,Graph.compressNode(k));delete g.needsUpdate}else f&&(this.updatePageRoot(g),null!=g.viewState.backgroundImage&&(null!=g.viewState.backgroundImage.originalSrc?g.viewState.backgroundImage=this.createImageForPageLink(g.viewState.backgroundImage.originalSrc,g):Graph.isPageLink(g.viewState.backgroundImage.src)&&(g.viewState.backgroundImage=this.createImageForPageLink(g.viewState.backgroundImage.src,
@@ -3409,9 +3413,9 @@ b[EditorUi.DIFF_INSERT][d].data=mxUtils.getXml(c)}catch(n){b[EditorUi.DIFF_INSER
"["+d[c].style.length+"]"),0==Object.keys(d[c]).length&&delete d[c];0==Object.keys(d).length&&delete f.cells[b]}}),d(EditorUi.DIFF_INSERT),d(EditorUi.DIFF_UPDATE),0==Object.keys(f.cells).length&&delete f.cells);0==Object.keys(f).length&&delete b[EditorUi.DIFF_UPDATE][e]}0==Object.keys(b[EditorUi.DIFF_UPDATE]).length&&delete b[EditorUi.DIFF_UPDATE]}return b};EditorUi.prototype.anonymizeAttributes=function(b,c){if(null!=b.attributes)for(var d=0;d<b.attributes.length;d++)"as"!=b.attributes[d].name&&
b.setAttribute(b.attributes[d].name,this.anonymizeString(b.attributes[d].value,c));if(null!=b.childNodes)for(d=0;d<b.childNodes.length;d++)this.anonymizeAttributes(b.childNodes[d],c)};EditorUi.prototype.anonymizeNode=function(b,c){for(var d=b.getElementsByTagName("mxCell"),g=0;g<d.length;g++)null!=d[g].getAttribute("value")&&d[g].setAttribute("value","["+d[g].getAttribute("value").length+"]"),null!=d[g].getAttribute("xmlValue")&&d[g].setAttribute("xmlValue","["+d[g].getAttribute("xmlValue").length+
"]"),null!=d[g].getAttribute("style")&&d[g].setAttribute("style","["+d[g].getAttribute("style").length+"]"),null!=d[g].parentNode&&"root"!=d[g].parentNode.nodeName&&null!=d[g].parentNode.parentNode&&(d[g].setAttribute("id",d[g].parentNode.getAttribute("id")),d[g].parentNode.parentNode.replaceChild(d[g],d[g].parentNode));return b};EditorUi.prototype.synchronizeCurrentFile=function(b){var d=this.getCurrentFile();null!=d&&(d.savingFile?this.handleError({message:mxResources.get("busy")}):!b&&d.invalidChecksum?
-d.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(d.clearAutosave(),this.editor.setStatus(""),b?d.reloadFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,f,m,k,u,
-p,t,x,F){m=null!=m?m:!0;k=null!=k?k:!1;var d=this.editor.graph;if(c||!b&&null!=t&&/(\.svg)$/i.test(t.getTitle())){var g=null!=d.themes&&"darkTheme"==d.defaultThemeName;x=!1;if(g||null!=this.pages&&this.currentPage!=this.pages[0]){var l=d.getGlobalVariable,d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet());d.setBackgroundImage=this.editor.graph.setBackgroundImage;var n=this.pages[0];this.currentPage==n?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=n.viewState&&
-null!=n.viewState&&d.setBackgroundImage(n.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?n.getName():"pagenumber"==b?1:l.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(n.root)}}u=null!=u?u:this.getXmlFileData(m,k,x,F);t=null!=t?t:this.getCurrentFile();b=this.createFileData(u,d,t,window.location.href,b,c,e,f,m,p,x);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=function(b,c,e,f,k,
+d.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(d.clearAutosave(),this.editor.setStatus(""),b?d.reloadFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,f,k,n,u,
+p,t,x,F){k=null!=k?k:!0;n=null!=n?n:!1;var d=this.editor.graph;if(c||!b&&null!=t&&/(\.svg)$/i.test(t.getTitle())){var g=null!=d.themes&&"darkTheme"==d.defaultThemeName;x=!1;if(g||null!=this.pages&&this.currentPage!=this.pages[0]){var l=d.getGlobalVariable,d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet());d.setBackgroundImage=this.editor.graph.setBackgroundImage;var m=this.pages[0];this.currentPage==m?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=m.viewState&&
+null!=m.viewState&&d.setBackgroundImage(m.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?m.getName():"pagenumber"==b?1:l.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(m.root)}}u=null!=u?u:this.getXmlFileData(k,n,x,F);t=null!=t?t:this.getCurrentFile();b=this.createFileData(u,d,t,window.location.href,b,c,e,f,k,p,x);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=function(b,c,e,f,k,
n){n=null!=n?n:!0;var d=null,g=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=c){var d=n?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),l=c.view.scale;n=Math.floor(d.x/l-c.view.translate.x);l=Math.floor(d.y/l-c.view.translate.y);d=c.background;null==k&&(c=this.getBasenames().join(";"),0<c.length&&(g=EditorUi.drawHost+"/embed.js?s="+c));b.setAttribute("x0",n);b.setAttribute("y0",l)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize","0"),b.setAttribute("fit",
"0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=f&&b.setAttribute("edit",f));null!=k&&(k=k.replace(/&/g,"&amp;"));b=null!=b?Graph.zapGremlins(mxUtils.getXml(b)):"";f=Graph.compress(b);Graph.decompress(f)!=b&&(f=encodeURIComponent(b));return(null==k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=k?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==k?null!=e?"<title>"+mxUtils.htmlEntities(e)+
"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=k?'<meta http-equiv="refresh" content="0;URL=\''+k+"'\"/>\n":"")+"</head>\n<body"+(null==k&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+f+"</div>\n</div>\n"+(null==k?'<script type="text/javascript" src="'+g+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
@@ -3420,20 +3424,20 @@ return(null==k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,
mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==k?'<script type="text/javascript" src="'+c+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:
null;var d=Editor.extractParserError(b,mxResources.get("invalidOrMissingFile"));if(d)throw Error(mxResources.get("notADiagramFile")+" ("+d+")");d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b&&"mxfile"==b.nodeName&&(d=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name"))){var c=null;this.fileNode=b;this.pages=[];for(var e=0;e<d.length;e++)null==d[e].getAttribute("id")&&d[e].setAttribute("id",e),b=new DiagramPage(d[e]),
null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[e+1])),this.pages.push(b),null!=urlParams["page-id"]&&b.getId()==urlParams["page-id"]&&(c=b);this.currentPage=null!=c?c:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var f=urlParams["layer-ids"].split(" ");b={};for(e=0;e<f.length;e++)b[f[e]]=!0;for(var k=this.editor.graph.getModel(),p=k.getChildren(k.root),e=0;e<p.length;e++){var v=p[e];k.setVisible(v,b[v.id]||!1)}}catch(y){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():
-this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,f,k,n,p,v,t,x,F,H){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();
+[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var f=urlParams["layer-ids"].split(" ");b={};for(e=0;e<f.length;e++)b[f[e]]=!0;for(var k=this.editor.graph.getModel(),u=k.getChildren(k.root),e=0;e<u.length;e++){var p=u[e];k.setVisible(p,b[p.id]||!1)}}catch(y){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():
+this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,f,k,n,u,p,t,x,F,H){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();
var d=this.getBaseFilename(!k),g=d+("xml"==b||"pdf"==b&&F?".drawio":"")+"."+b;if("xml"==b){var l=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,f,k,null,null,null,c);this.saveData(g,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(g,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?g=d+".png":"jpeg"==b&&(g=d+".jpg"),this.saveRequest(g,b,mxUtils.bind(this,function(d,
-c){try{var e=this.editor.graph.pageVisible;null!=n&&(this.editor.graph.pageVisible=n);var g=this.createDownloadRequest(d,b,f,c,p,k,v,t,x,F,H);this.editor.graph.pageVisible=e;return g}catch(U){this.handleError(U)}}));else{var m=null,q=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==b){var u=this.editor.graph.background;
-if(p||u==mxConstants.NONE)u=null;var y=this.editor.graph.getSvg(u,null,null,null,null,f);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else g=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();q(b)}),f)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,k,n,p,v,t,
+c){try{var e=this.editor.graph.pageVisible;null!=n&&(this.editor.graph.pageVisible=n);var g=this.createDownloadRequest(d,b,f,c,u,k,p,t,x,F,H);this.editor.graph.pageVisible=e;return g}catch(U){this.handleError(U)}}));else{var m=null,q=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==b){var v=this.editor.graph.background;
+if(u||v==mxConstants.NONE)v=null;var y=this.editor.graph.getSvg(v,null,null,null,null,f);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else g=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();q(b)}),f)}}catch(L){this.handleError(L)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,k,n,u,p,t,
x,F){var d=this.editor.graph,g=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==n?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(g.width*g.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=F?m="&from="+F.from+"&to="+F.to:0==n&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&null!=this.currentPage))for(n=0;n<this.pages.length;n++)if(this.pages[n]==this.currentPage){l="&from="+n;break}n=
d.background;"png"!=c&&"pdf"!=c||!k?k||null!=n&&n!=mxConstants.NONE||(n="#ffffff"):n=mxConstants.NONE;k={globalVars:d.getExportVariables()};t&&(k.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});Graph.translateDiagram&&(k.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+l+m+"&bg="+(null!=n?n:mxConstants.NONE)+"&base64="+f+"&embedXml="+x+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+
-(null!=p?"&scale="+p:"")+(null!=v?"&border="+v:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=window.location.hash,g=mxUtils.bind(this,function(e){var g=null!=b.data?b.data:"";null!=e&&0<e.length&&(0<g.length&&(g+="\n"),g+=e);e=new LocalFile(this,"csv"!=b.format&&0<g.length?g:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);e.getHash=function(){return d};this.fileLoaded(e);"csv"==
+(null!=u?"&scale="+u:"")+(null!=p?"&border="+p:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=window.location.hash,g=mxUtils.bind(this,function(e){var g=null!=b.data?b.data:"";null!=e&&0<e.length&&(0<g.length&&(g+="\n"),g+=e);e=new LocalFile(this,"csv"!=b.format&&0<g.length?g:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);e.getHash=function(){return d};this.fileLoaded(e);"csv"==
b.format&&this.importCsv(g,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var f=null!=b.interval?parseInt(b.interval):6E4,l=null,k=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){d===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),m()):this.handleError({message:mxResources.get("error")+
" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(l);l=window.setTimeout(k,f)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();k()}));m();k()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){g(b)}),mxUtils.bind(this,function(b){null!=e&&e(b)})):g("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||f.warningImage,
b.tooltip,b.align,b.valign,b.offset);d.addListener(mxEvent.CLICK,function(d,c){e.alert(b.tooltip)});return d}var c=null,e=this;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var f=this.editor.graph,k=f.getModel();k.beginUpdate();var p=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var v=k.getCell(b.getAttribute("id"));if(null!=v){try{var t=b.getAttribute("value");if(null!=t){var x=mxUtils.parseXml(t).documentElement;
-if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(v,x);else for(var F=x.attributes,H=0;H<F.length;H++)f.setAttributeForCell(v,F[H].nodeName,0<F[H].nodeValue.length?F[H].nodeValue:null)}}catch(M){null!=window.console&&console.log("Error in value for "+v.id+": "+M)}try{var z=b.getAttribute("style");null!=z&&f.model.setStyle(v,z)}catch(M){null!=window.console&&console.log("Error in style for "+v.id+": "+M)}try{var D=b.getAttribute("icon");if(null!=D){var N=0<D.length?JSON.parse(D):null;null!=
-N&&N.append||f.removeCellOverlays(v);null!=N&&f.addCellOverlay(v,d(N))}}catch(M){null!=window.console&&console.log("Error in icon for "+v.id+": "+M)}try{var E=b.getAttribute("geometry");if(null!=E){var E=JSON.parse(E),J=f.getCellGeometry(v);if(null!=J){J=J.clone();for(key in E){var C=parseFloat(E[key]);"dx"==key?J.x+=C:"dy"==key?J.y+=C:"dw"==key?J.width+=C:"dh"==key?J.height+=C:J[key]=parseFloat(E[key])}f.model.setGeometry(v,J)}}}catch(M){null!=window.console&&console.log("Error in icon for "+v.id+
-": "+M)}}}else if("model"==b.nodeName){for(var K=b.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(b.firstChild)).decode(K,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(f.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))f.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(p=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):
+if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(v,x);else for(var F=x.attributes,H=0;H<F.length;H++)f.setAttributeForCell(v,F[H].nodeName,0<F[H].nodeValue.length?F[H].nodeValue:null)}}catch(L){null!=window.console&&console.log("Error in value for "+v.id+": "+L)}try{var z=b.getAttribute("style");null!=z&&f.model.setStyle(v,z)}catch(L){null!=window.console&&console.log("Error in style for "+v.id+": "+L)}try{var D=b.getAttribute("icon");if(null!=D){var N=0<D.length?JSON.parse(D):null;null!=
+N&&N.append||f.removeCellOverlays(v);null!=N&&f.addCellOverlay(v,d(N))}}catch(L){null!=window.console&&console.log("Error in icon for "+v.id+": "+L)}try{var E=b.getAttribute("geometry");if(null!=E){var E=JSON.parse(E),J=f.getCellGeometry(v);if(null!=J){J=J.clone();for(key in E){var C=parseFloat(E[key]);"dx"==key?J.x+=C:"dy"==key?J.y+=C:"dw"==key?J.width+=C:"dh"==key?J.height+=C:J[key]=parseFloat(E[key])}f.model.setGeometry(v,J)}}}catch(L){null!=window.console&&console.log("Error in icon for "+v.id+
+": "+L)}}}else if("model"==b.nodeName){for(var K=b.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(b.firstChild)).decode(K,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(f.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))f.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(p=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):
1);b=b.nextSibling}}finally{k.endUpdate()}null!=p&&this.chromelessResize&&this.chromelessResize(!0,p)}return c};EditorUi.prototype.getCopyFilename=function(b,c){var d=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,e="",g=d.lastIndexOf(".");0<=g&&(e=d.substring(g),d=d.substring(0,g));if(c)var f=new Date,g=f.getFullYear(),k=f.getMonth()+1,p=f.getDate(),t=f.getHours(),x=f.getMinutes(),f=f.getSeconds(),d=d+(" "+(g+"-"+k+"-"+p+"-"+t+"-"+x+"-"+f));return d=mxResources.get("copyOf",[d])+e};
EditorUi.prototype.fileLoaded=function(b,c){var d=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var e=!1;this.hideDialog();null!=d&&(EditorUi.debug("File.closed",[d]),d.removeListener(this.descriptorChangedListener),d.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var g=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=d&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();
this.setBackgroundImage(null);!c&&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();c||this.showSplash()});if(null!=b)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);
@@ -3458,10 +3462,10 @@ mxResources.get("save")),p.insertBefore(H,p.firstChild),mxEvent.addListener(H,"c
this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=z.getSelectionCells(),c=z.view.getBounds(d),e=z.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=z.view.translate.x;c.y-=z.view.translate.y;J(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){z.isMouseDown&&null!=z.panningManager&&null!=z.graphHandler.first&&(z.graphHandler.suspend(),null!=z.graphHandler.hint&&(z.graphHandler.hint.style.visibility=
"hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",z.panningManager.stop(),z.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){z.isMouseDown&&null!=z.panningManager&&null!=z.graphHandler&&(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,z.panningManager.stop(),z.graphHandler.reset(),z.isMouseDown=!1,z.autoScroll=!0,C(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){z.isMouseDown&&null!=z.graphHandler.first&&
(z.graphHandler.resume(),null!=z.graphHandler.hint&&(z.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",z.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(b){k.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(b){k.style.cursor="";k.style.backgroundColor=
-"";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,f,m,n,q,p,u,v){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,n,q),d)],d[0].vertex=!0,J(d,new mxRectangle(0,0,n,q),b,mxEvent.isAltDown(b)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," ")),null!=g&&null!=g.parentNode&&0<c.length&&
-(g.parentNode.removeChild(g),g=null);else{var x=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var f=Editor.extractGraphModelFromPdf(d);null!=f&&0<f.length&&(d=f)}if(null!=d)if(f=mxUtils.parseXml(d),"mxlibrary"==f.documentElement.nodeName)try{var m=JSON.parse(mxUtils.getTextContent(f.documentElement));l(m,k);c=c.concat(m);E(b);this.spinner.stop();x=!0}catch(aa){}else if("mxfile"==f.documentElement.nodeName)try{for(var n=f.documentElement.getElementsByTagName("diagram"),m=0;m<
-n.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(n[m])),p=this.editor.graph.getBoundingBoxFromGeometry(q);J(q,new mxRectangle(0,0,p.width,p.height),b)}x=!0}catch(aa){null!=window.console&&console.log("error in drop handler:",aa)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),g=null)});null!=v&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?this.importVisio(v,
-function(b){t(b,"text/xml")},null,p):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,p)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?t(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):t(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"dragleave",function(b){k.style.cursor=
+"";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,f,m,n,q,p,u,x){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,n,q),d)],d[0].vertex=!0,J(d,new mxRectangle(0,0,n,q),b,mxEvent.isAltDown(b)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," ")),null!=g&&null!=g.parentNode&&0<c.length&&
+(g.parentNode.removeChild(g),g=null);else{var v=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var f=Editor.extractGraphModelFromPdf(d);null!=f&&0<f.length&&(d=f)}if(null!=d)if(f=mxUtils.parseXml(d),"mxlibrary"==f.documentElement.nodeName)try{var m=JSON.parse(mxUtils.getTextContent(f.documentElement));l(m,k);c=c.concat(m);E(b);this.spinner.stop();v=!0}catch(aa){}else if("mxfile"==f.documentElement.nodeName)try{for(var n=f.documentElement.getElementsByTagName("diagram"),m=0;m<
+n.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(n[m])),p=this.editor.graph.getBoundingBoxFromGeometry(q);J(q,new mxRectangle(0,0,p.width,p.height),b)}v=!0}catch(aa){null!=window.console&&console.log("error in drop handler:",aa)}v||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),g=null)});null!=x&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?this.importVisio(x,
+function(b){t(b,"text/xml")},null,p):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,p)&&null!=x?this.parseFile(x,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?t(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):t(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"dragleave",function(b){k.style.cursor=
"";k.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));t=t.cloneNode(!1);t.setAttribute("src",Editor.editImage);t.setAttribute("title",mxResources.get("edit"));p.insertBefore(t,p.firstChild);mxEvent.addListener(t,"click",N);mxEvent.addListener(k,"dblclick",function(b){mxEvent.getSource(b)==k&&N(b)});f=t.cloneNode(!1);f.setAttribute("src",Editor.plusImage);f.setAttribute("title",mxResources.get("add"));p.insertBefore(f,p.firstChild);mxEvent.addListener(f,"click",C);this.isOffline()||
".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(f=document.createElement("span"),f.setAttribute("title",mxResources.get("help")),f.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(f,"?"),mxEvent.addGestureListeners(f,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),p.insertBefore(f,p.firstChild))}q.appendChild(p);q.style.paddingRight=18*p.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=
function(b,c){for(var d=0;d<b.length;d++){var e=b[d],g=e.data;if(null!=g){var g=this.convertDataUri(g),f="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(f+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(f+"image="+g,e.w,e.h,"",e.title||"",!1,!1,!0))}else null!=e.xml&&(g=this.stringToCells(Graph.decompress(e.xml)),0<g.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(g,e.w,e.h,e.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=
@@ -3527,26 +3531,26 @@ f&&(d.target=f);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=pars
'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,e,f){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=document.createElement("h3");mxUtils.write(g,mxResources.get("html"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";
k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");g=k.cloneNode(!0);g.setAttribute("value","copy");l.appendChild(g);var q=document.createElement("span");mxUtils.write(q,mxResources.get("includeCopyOfMyDiagram"));l.appendChild(q);mxUtils.br(l);l.appendChild(k);q=document.createElement("span");mxUtils.write(q,mxResources.get("publicDiagramUrl"));l.appendChild(q);var p=this.getCurrentFile();null==e&&null!=p&&p.constructor==window.DriveFile&&(q=
document.createElement("a"),q.style.paddingLeft="12px",q.style.color="gray",q.style.cursor="pointer",mxUtils.write(q,mxResources.get("share")),l.appendChild(q),mxEvent.addListener(q,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(p.getId())})));g.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),H=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var z=document.createElement("input");
-z.setAttribute("type","text");z.style.marginRight="16px";z.style.width="60px";z.style.marginLeft="4px";z.style.marginRight="12px";z.value="100%";d.appendChild(z);var D=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,N=N=this.addCheckbox(d,mxResources.get("allPages"),l,!l),E=this.addCheckbox(d,mxResources.get("layers"),!0),J=this.addCheckbox(d,mxResources.get("tags"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),K=this.addEditButton(d,C),M=K.getEditInput();
-M.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled");M.checked&&C.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(k.checked?e:null,H.checked,z.value,t.getTarget(),t.getColor(),D.checked,N.checked,E.checked,J.checked,C.checked,K.getLink())}),null,b,c);this.showDialog(b.container,340,430,
+z.setAttribute("type","text");z.style.marginRight="16px";z.style.width="60px";z.style.marginLeft="4px";z.style.marginRight="12px";z.value="100%";d.appendChild(z);var D=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,N=N=this.addCheckbox(d,mxResources.get("allPages"),l,!l),E=this.addCheckbox(d,mxResources.get("layers"),!0),J=this.addCheckbox(d,mxResources.get("tags"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),K=this.addEditButton(d,C),L=K.getEditInput();
+L.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?L.removeAttribute("disabled"):L.setAttribute("disabled","disabled");L.checked&&C.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(k.checked?e:null,H.checked,z.value,t.getTarget(),t.getColor(),D.checked,N.checked,E.checked,J.checked,C.checked,K.getLink())}),null,b,c);this.showDialog(b.container,340,430,
!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,f,k,n,p,t){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=document.createElement("h3");mxUtils.write(g,b||mxResources.get("link"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var l=this.getCurrentFile();b=0;if(null==l||l.constructor!=window.DriveFile||c)p=null!=p?p:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;p=null!=p?p:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";
g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var m=document.createElement("div");m.style.whiteSpace="normal";mxUtils.write(m,mxResources.get("linkAccountRequired"));g.appendChild(m);m=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));m.style.marginTop="12px";m.className="geBtn";g.appendChild(m);d.appendChild(g);m=document.createElement("a");
m.style.paddingLeft="12px";m.style.color="gray";m.style.fontSize="11px";m.style.cursor="pointer";mxUtils.write(m,mxResources.get("check"));g.appendChild(m);mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,
300,80,!0,!1);b.init()}))}))}var q=null,u=null;if(null!=e||null!=f)b+=30,mxUtils.write(d,mxResources.get("width")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",d.appendChild(q),mxUtils.write(d,mxResources.get("height")+":"),u=document.createElement("input"),u.setAttribute("type","text"),u.style.width="50px",u.style.marginLeft="6px",u.style.marginBottom=
-"10px",u.value=f+"px",d.appendChild(u),mxUtils.br(d);var v=this.addLinkSection(d,n);e=null!=this.pages&&1<this.pages.length;var E=null;if(null==l||l.constructor!=window.DriveFile||c)E=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var J=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!n),C=this.addEditButton(d,J),K=C.getEditInput();n&&(K.style.marginLeft=J.style.marginLeft,J.style.display="none",b-=20);var M=this.addCheckbox(d,mxResources.get("layers"),!0);M.style.marginLeft=K.style.marginLeft;
-M.style.marginTop="8px";var Z=this.addCheckbox(d,mxResources.get("tags"),!0);Z.style.marginLeft=K.style.marginLeft;Z.style.marginBottom="16px";Z.style.marginTop="16px";mxEvent.addListener(J,"change",function(){J.checked?(M.removeAttribute("disabled"),K.removeAttribute("disabled")):(M.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&J.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,
-d,mxUtils.bind(this,function(){k(v.getTarget(),v.getColor(),null==E?!0:E.checked,J.checked,C.getLink(),M.checked,null!=q?q.value:null,null!=u?u.value:null,Z.checked)}),null,mxResources.get("create"),p,t);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,k){var d=document.createElement("div");d.style.whiteSpace=
+"10px",u.value=f+"px",d.appendChild(u),mxUtils.br(d);var v=this.addLinkSection(d,n);e=null!=this.pages&&1<this.pages.length;var E=null;if(null==l||l.constructor!=window.DriveFile||c)E=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var J=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!n),C=this.addEditButton(d,J),K=C.getEditInput();n&&(K.style.marginLeft=J.style.marginLeft,J.style.display="none",b-=20);var L=this.addCheckbox(d,mxResources.get("layers"),!0);L.style.marginLeft=K.style.marginLeft;
+L.style.marginTop="8px";var Z=this.addCheckbox(d,mxResources.get("tags"),!0);Z.style.marginLeft=K.style.marginLeft;Z.style.marginBottom="16px";Z.style.marginTop="16px";mxEvent.addListener(J,"change",function(){J.checked?(L.removeAttribute("disabled"),K.removeAttribute("disabled")):(L.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&J.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,
+d,mxUtils.bind(this,function(){k(v.getTarget(),v.getColor(),null==E?!0:E.checked,J.checked,C.getLink(),L.checked,null!=q?q.value:null,null!=u?u.value:null,Z.checked)}),null,mxResources.get("create"),p,t);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,k){var d=document.createElement("div");d.style.whiteSpace=
"nowrap";var g=document.createElement("h3");mxUtils.write(g,mxResources.get("image"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(k?"10":"4")+"px";d.appendChild(g);if(k){mxUtils.write(d,mxResources.get("zoom")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="12px";l.value=this.lastExportZoom||"100%";d.appendChild(l);mxUtils.write(d,mxResources.get("borderWidth")+
":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.value=this.lastExportBorder||"0";d.appendChild(m);mxUtils.br(d)}var q=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),p=f?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),g=this.editor.graph,t=f?null:this.addCheckbox(d,mxResources.get("transparentBackground"),g.background==
mxConstants.NONE||null==g.background);null!=t&&(t.style.marginBottom="16px");b=new CustomDialog(this,d,mxUtils.bind(this,function(){var b=parseInt(l.value)/100||1,d=parseInt(m.value)||0;e(!q.checked,null!=p?p.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(k?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,f,k,n,p,t,y){p=null!=p?p:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph,
l="jpeg"==t?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";d.appendChild(q);mxUtils.write(d,mxResources.get("borderWidth")+":");var u=document.createElement("input");
u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";d.appendChild(u);mxUtils.br(d);var v=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,g.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 C=document.createElement("select");C.style.marginTop="16px";C.style.marginLeft=
"8px";b=["selectionOnly","diagram","page"];for(m=0;m<b.length;m++)if(!g.isSelectionEmpty()||"selectionOnly"!=b[m]){var K=document.createElement("option");mxUtils.write(K,mxResources.get(b[m]));K.setAttribute("value",b[m]);C.appendChild(K)}y?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(C),mxUtils.br(d),l+=26,mxEvent.addListener(C,"change",function(){"selectionOnly"==C.value&&(v.checked=!0)})):n&&(d.appendChild(J),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(v,
-"change",function(){v.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));g.isSelectionEmpty()?y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(C.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(v,"change",function(){C.value=v.checked?"selectionOnly":"diagram"}));var M=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),Z=null;Editor.isDarkMode()&&
-(Z=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var L=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible),O=document.createElement("input");O.style.marginTop="16px";O.style.marginRight="8px";O.setAttribute("type","checkbox");var U=document.createElement("input");U.style.marginTop="16px";U.style.marginRight="8px";U.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||O.setAttribute("disabled","disabled");c&&(d.appendChild(O),mxUtils.write(d,mxResources.get("embedImages")),
+"change",function(){v.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));g.isSelectionEmpty()?y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(C.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(v,"change",function(){C.value=v.checked?"selectionOnly":"diagram"}));var L=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),Z=null;Editor.isDarkMode()&&
+(Z=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var M=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible),P=document.createElement("input");P.style.marginTop="16px";P.style.marginRight="8px";P.setAttribute("type","checkbox");var U=document.createElement("input");U.style.marginTop="16px";U.style.marginRight="8px";U.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||P.setAttribute("disabled","disabled");c&&(d.appendChild(P),mxUtils.write(d,mxResources.get("embedImages")),
mxUtils.br(d),d.appendChild(U),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=60);var G=null;if("png"==t||"jpeg"==t)G=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var I=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),p,null,null,"jpeg"!=t);I.style.marginBottom="16px";var B=document.createElement("select");B.style.maxWidth="260px";B.style.marginLeft="8px";B.style.marginRight="10px";B.className="geBtn";c=document.createElement("option");
c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));B.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));B.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));B.appendChild(c);"svg"==t&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(B),mxUtils.br(d),mxUtils.br(d),l+=50);e=new CustomDialog(this,d,
-mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=q.value;k(q.value,M.checked,!v.checked,L.checked,I.checked,O.checked,u.value,J.checked,!1,B.value,null!=G?G.checked:null,null!=Z?Z.checked:null,C.value,U.checked)}),null,e,f);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,k){var d=
+mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=q.value;k(q.value,L.checked,!v.checked,M.checked,I.checked,P.checked,u.value,J.checked,!1,B.value,null!=G?G.checked:null,null!=Z?Z.checked:null,C.value,U.checked)}),null,e,f);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,k){var d=
document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph;if(null!=c){var l=document.createElement("h3");mxUtils.write(l,c);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(l)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),q=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible&&f,!f),p=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),z=this.addEditButton(d,t),D=z.getEditInput(),N=1<g.model.getChildCount(g.model.getRoot()),
E=this.addCheckbox(d,mxResources.get("layers"),N,!N);E.style.marginLeft=D.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(N&&E.removeAttribute("disabled"),D.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&t.checked?z.getEditSelect().removeAttribute("disabled"):z.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,
function(){b(m.checked,q.checked,p.checked,t.checked,z.getLink(),E.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,f,k,n,p,t){function d(d){var c=" ",m="";f&&(c=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
@@ -3594,18 +3598,18 @@ EditorUi.prototype.convertDataUri=function(b){if("data:"==b.substring(0,5)){var
this.importFileInputElt){var d=document.createElement("input");d.setAttribute("type","file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){null!=d.files&&(this.importFiles(d.files,null,null,this.maxImageSize),d.type="",d.type="file",d.value="")}));d.style.display="none";document.body.appendChild(d);this.importFileInputElt=d}this.importFileInputElt.click()}else{window.openNew=!1;window.openKey="import";window.listBrowserFiles=mxUtils.bind(this,function(b,d){StorageFile.listFiles(this,
"F",b,d)});window.openBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.getFileContent(this,b,d,c)});window.deleteBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.deleteFile(this,b,d,c)});if(!c){var e=Editor.useLocalStorage;Editor.useLocalStorage=!b}window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,d){if(null!=d&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(d)){var c=new Blob([b],{type:"application/octet-stream"});
this.importVisio(c,mxUtils.bind(this,function(b){this.importXml(b,0,0,!0)}),null,d)}else this.editor.graph.setSelectionCells(this.importXml(b,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!c){var g=this.dialog,f=g.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=e;f.apply(g,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};
-EditorUi.prototype.importZipFile=function(b,c,e){var d=this,g=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(g){if(0==Object.keys(g.files).length)e();else{var f=0,l,k=!1;g.forEach(function(b,d){var g=d.name.toLowerCase();"diagram/diagram.xml"==g?(k=!0,d.async("string").then(function(b){0==b.indexOf("<mxfile ")?c(b):e()})):0==g.indexOf("versions/")&&(g=parseInt(g.substr(9)),g>f&&(f=g,l=d))});0<f?l.async("string").then(function(g){!d.isOffline()&&
-(new XMLHttpRequest).upload&&d.isRemoteFileFormat(g,b.name)?d.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):k||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?g():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",g))};EditorUi.prototype.importFile=function(b,c,e,f,k,n,p,t,y,x,F,H){x=null!=x?x:!0;var d=!1,g=null,
+EditorUi.prototype.importZipFile=function(b,c,e){var d=this,g=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(g){if(0==Object.keys(g.files).length)e();else{var f=0,k,l=!1;g.forEach(function(b,d){var g=d.name.toLowerCase();"diagram/diagram.xml"==g?(l=!0,d.async("string").then(function(b){0==b.indexOf("<mxfile ")?c(b):e()})):0==g.indexOf("versions/")&&(g=parseInt(g.substr(9)),g>f&&(f=g,k=d))});0<f?k.async("string").then(function(g){!d.isOffline()&&
+(new XMLHttpRequest).upload&&d.isRemoteFileFormat(g,b.name)?d.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):l||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?g():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",g))};EditorUi.prototype.importFile=function(b,c,e,f,k,n,p,t,y,x,F,H){x=null!=x?x:!0;var d=!1,g=null,
l=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,p)):d=this.importXml(b,e,f,x,null,null!=H?mxEvent.isControlDown(H):null);null!=t&&t(d)});"image"==c.substring(0,5)?(y=!1,"image/png"==c.substring(0,9)&&(c=F?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(g=this.importXml(c,e,f,x,null,null!=H?mxEvent.isControlDown(H):null),y=!0)),y||(c=this.editor.graph,F=b.indexOf(";"),0<F&&(b=b.substring(0,F)+b.substring(b.indexOf(",",
F+1))),x&&c.isGridEnabled()&&(e=c.snap(e),f=c.snap(f)),g=[c.insertVertex(null,null,"",e,f,k,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,l)):null!=y&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?(d=!0,this.importVisio(y,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,p)?(d=!0,this.parseFile(null!=
y?y:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?l(b.responseText):null!=t&&t(null))}),p)):0==b.indexOf("PK")&&null!=y?(d=!0,this.importZipFile(y,l,mxUtils.bind(this,function(){g=this.insertTextAt(this.validateFileData(b),e,f,!0,null,x);t(g)}))):/(\.v(sd|dx))($|\?)/i.test(p)||/(\.vs(s|x))($|\?)/i.test(p)||(g=this.insertTextAt(this.validateFileData(b),e,f,!0,null,x,null,null!=H?mxEvent.isControlDown(H):null));d||null==
-t||t(g);return g};EditorUi.prototype.importFiles=function(b,c,e,f,k,n,p,t,y,x,F,H,z){f=null!=f?f:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=e,g=!0;c=null!=c?c:0;e=null!=e?e:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=F||this.resampleThreshold,q=0;q<b.length;q++)if("image/"==b[q].type.substring(0,6)&&b[q].size>m){l=!0;break}var u=mxUtils.bind(this,function(){var l=this.editor.graph,m=l.gridSize;k=null!=k?k:mxUtils.bind(this,function(b,c,e,g,f,l,k,m,n){try{return null!=
-b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,k)),null):this.importFile(b,c,e,g,f,l,k,m,n,d,H,z)}catch(la){return this.handleError(la),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,u=q,v=[],C=mxUtils.bind(this,function(b,d){v[b]=d;if(0==--u){this.spinner.stop();if(null!=t)t(v);else{var c=[];l.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var g=
+t||t(g);return g};EditorUi.prototype.importFiles=function(b,c,e,f,k,n,p,t,y,x,F,H,z){f=null!=f?f:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=e,g=!0;c=null!=c?c:0;e=null!=e?e:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=F||this.resampleThreshold,q=0;q<b.length;q++)if("image/"==b[q].type.substring(0,6)&&b[q].size>m){l=!0;break}var u=mxUtils.bind(this,function(){var l=this.editor.graph,m=l.gridSize;k=null!=k?k:mxUtils.bind(this,function(b,c,e,g,f,k,l,m,n){try{return null!=
+b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,l)),null):this.importFile(b,c,e,g,f,k,l,m,n,d,H,z)}catch(la){return this.handleError(la),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,u=q,v=[],C=mxUtils.bind(this,function(b,d){v[b]=d;if(0==--u){this.spinner.stop();if(null!=t)t(v);else{var c=[];l.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var g=
v[e]();null!=g&&(c=c.concat(g))}}finally{l.getModel().endUpdate()}}n(c)}}),y=0;y<q;y++)mxUtils.bind(this,function(d){var n=b[d];if(null!=n){var q=new FileReader;q.onload=mxUtils.bind(this,function(b){if(null==p||p(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.type.substring(0,9)){var q=Graph.clipSvgDataUri(b.target.result),t=q.indexOf(","),u=decodeURIComponent(escape(atob(q.substring(t+1)))),v=mxUtils.parseXml(u),u=v.getElementsByTagName("svg");if(0<u.length){var u=u[0],z=H?null:u.getAttribute("content");
null!=z&&"<"!=z.charAt(0)&&"%"!=z.charAt(0)&&(z=unescape(window.atob?atob(z):Base64.decode(z,!0)));null!=z&&"%"==z.charAt(0)&&(z=decodeURIComponent(z));null==z||"<mxfile "!==z.substring(0,8)&&"<mxGraphModel "!==z.substring(0,14)?C(d,mxUtils.bind(this,function(){try{if(q.substring(0,t+1),null!=v){var b=v.getElementsByTagName("svg");if(0<b.length){var g=b[0],p=g.getAttribute("width"),u=g.getAttribute("height"),p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,u=null!=u&&"%"!=u.charAt(u.length-
-1)?parseFloat(u):NaN,x=g.getAttribute("viewBox");if(null==x||0==x.length)g.setAttribute("viewBox","0 0 "+p+" "+u);else if(isNaN(p)||isNaN(u)){var C=x.split(" ");3<C.length&&(p=parseFloat(C[2]),u=parseFloat(C[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(g));var z=Math.min(1,Math.min(f/Math.max(1,p)),f/Math.max(1,u)),L=k(q,n.type,c+d*m,e+d*m,Math.max(1,Math.round(p*z)),Math.max(1,Math.round(u*z)),n.name);if(isNaN(p)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){p=Math.max(1,y.width);
-u=Math.max(1,y.height);L[0].geometry.width=p;L[0].geometry.height=u;g.setAttribute("viewBox","0 0 "+p+" "+u);q=Editor.createSvgDataUri(mxUtils.getXml(g));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[L[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return L}}}catch(ia){}return null})):C(d,mxUtils.bind(this,function(){return k(z,"text/xml",c+d*m,e+d*m,0,0,n.name)}))}else C(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==
-n.type){var L=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=L&&0<L.length){var y=new Image;y.src=b.target.result;C(d,mxUtils.bind(this,function(){return k(L,"text/xml",c+d*m,e+d*m,y.width,y.height,n.name)}));u=!0}}u||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):
+1)?parseFloat(u):NaN,x=g.getAttribute("viewBox");if(null==x||0==x.length)g.setAttribute("viewBox","0 0 "+p+" "+u);else if(isNaN(p)||isNaN(u)){var C=x.split(" ");3<C.length&&(p=parseFloat(C[2]),u=parseFloat(C[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(g));var z=Math.min(1,Math.min(f/Math.max(1,p)),f/Math.max(1,u)),M=k(q,n.type,c+d*m,e+d*m,Math.max(1,Math.round(p*z)),Math.max(1,Math.round(u*z)),n.name);if(isNaN(p)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){p=Math.max(1,y.width);
+u=Math.max(1,y.height);M[0].geometry.width=p;M[0].geometry.height=u;g.setAttribute("viewBox","0 0 "+p+" "+u);q=Editor.createSvgDataUri(mxUtils.getXml(g));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[M[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return M}}}catch(ia){}return null})):C(d,mxUtils.bind(this,function(){return k(z,"text/xml",c+d*m,e+d*m,0,0,n.name)}))}else C(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==
+n.type){var M=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=M&&0<M.length){var y=new Image;y.src=b.target.result;C(d,mxUtils.bind(this,function(){return k(M,"text/xml",c+d*m,e+d*m,y.width,y.height,n.name)}));u=!0}}u||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):
this.loadImage(b.target.result,mxUtils.bind(this,function(l){this.resizeImage(l,b.target.result,mxUtils.bind(this,function(b,l,q){C(d,mxUtils.bind(this,function(){if(null!=b&&b.length<x){var p=g&&this.isResampleImageSize(n.size,F)?Math.min(1,Math.min(f/l,f/q)):1;return k(b,n.type,c+d*m,e+d*m,Math.round(l*p),Math.round(q*p),n.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),g,f,F,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else q=
b.target.result,k(q,n.type,c+d*m,e+d*m,240,160,n.name,function(b){C(d,function(){return b})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?k(null,n.type,c+d*m,e+d*m,240,160,n.name,function(b){C(d,function(){return b})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?q.readAsDataURL(n):q.readAsText(n)}})(y)});if(l){l=[];for(q=0;q<b.length;q++)l.push(b[q]);b=l;this.confirmImageResize(function(b){g=b;u()},y)}else u()};EditorUi.prototype.confirmImageResize=
function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,g=function(e,g){if(e||c)mxSettings.setResizeImages(e?g:null),mxSettings.save();d();b(g)};null==e||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(b){g(b,!0)},function(b){g(b,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+
@@ -3613,13 +3617,13 @@ function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?
function(b,c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,f,k,n,p){k=null!=k?k:this.maxImageSize;var d=Math.max(1,b.width),g=Math.max(1,b.height);if(f&&this.isResampleImageSize(null!=p?p:c.length,n))try{var l=Math.max(d/k,g/k);if(1<l){var m=Math.round(d/l),q=Math.round(g/l),t=document.createElement("canvas");t.width=m;t.height=q;t.getContext("2d").drawImage(b,0,0,m,q);var u=t.toDataURL();if(u.length<c.length){var N=document.createElement("canvas");
N.width=m;N.height=q;var E=N.toDataURL();u!==E&&(c=u,d=m,g=q)}}}catch(J){}e(c,d,g)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,e){try{var d=new Image;d.onload=function(){d.width=0<d.width?d.width:120;d.height=0<d.height?d.height:120;c(d)};null!=e&&(d.onerror=e);d.src=b}catch(m){if(null!=e)e(m);else throw m;}};var f=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=
mxStencilRegistry.allowEval&&!this.isOfflineApp();this.isSettingsEnabled()&&("1"==urlParams.sketch&&this.doSetSketchMode(null!=mxSettings.settings.sketchMode&&null==urlParams.rough?mxSettings.settings.sketchMode:"0"!=urlParams.rough),this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&(c.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);c.cellEditor.editPlantUmlData=function(d,e,g){var f=JSON.parse(g);e=new TextareaDialog(b,mxResources.get("plantUml")+
-":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,f.format,function(g,l,k){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==f.format)c.labelChanged(d,"<pre>"+g+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(g),[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=l,m.height=k,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:e,format:f.format}))}finally{c.getModel().endUpdate()}},
-function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};c.cellEditor.editMermaidData=function(d,e,g){var f=JSON.parse(g);e=new TextareaDialog(b,mxResources.get("mermaid")+":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(e,f.config,function(g,l,k){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",g,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,
-l),m.height=Math.max(m.height,k),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:e,config:f.config},null,2))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};var e=c.cellEditor.startEditing;c.cellEditor.startEditing=function(d,g){try{var f=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=f)this.editPlantUmlData(d,g,f);else if(f=this.graph.getAttributeForCell(d,"mermaidData"),
-null!=f)this.editMermaidData(d,g,f);else{var l=c.getCellStyle(d);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(Z){b.handleError(Z)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(K){b.handleError(K)}return c};var k=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=k.apply(this,arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});
+":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,f.format,function(g,k,l){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==f.format)c.labelChanged(d,"<pre>"+g+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(g),[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=k,m.height=l,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:e,format:f.format}))}finally{c.getModel().endUpdate()}},
+function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};c.cellEditor.editMermaidData=function(d,e,g){var f=JSON.parse(g);e=new TextareaDialog(b,mxResources.get("mermaid")+":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(e,f.config,function(g,k,l){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",g,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,
+k),m.height=Math.max(m.height,l),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:e,config:f.config},null,2))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};var e=c.cellEditor.startEditing;c.cellEditor.startEditing=function(d,g){try{var f=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=f)this.editPlantUmlData(d,g,f);else if(f=this.graph.getAttributeForCell(d,"mermaidData"),
+null!=f)this.editMermaidData(d,g,f);else{var k=c.getCellStyle(d);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(Z){b.handleError(Z)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(K){b.handleError(K)}return c};var k=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=k.apply(this,arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});
return d};var m=c.setBackgroundImage;c.setBackgroundImage=function(d){null!=d&&null!=d.originalSrc&&(d=b.createImageForPageLink(d.originalSrc,b.currentPage,this));m.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",mxUtils.bind(this,function(b,d){var e=null!=c.backgroundImage?c.backgroundImage.originalSrc:
null;if(null!=e){var g=e.indexOf(",");if(0<g)for(var e=e.substring(g+1),g=d.getProperty("patches"),f=0;f<g.length;f++)if(null!=g[f][EditorUi.DIFF_UPDATE]&&null!=g[f][EditorUi.DIFF_UPDATE][e]){c.refreshBackgroundImage();break}}}));var n=c.getBackgroundImageObject;c.getBackgroundImageObject=function(d,c){var e=n.apply(this,arguments);if(null!=e&&null!=e.originalSrc)if(!c)e={src:e.originalSrc};else if(c&&null!=this.themes&&"darkTheme"==this.defaultThemeName){var g=this.stylesheet,f=this.shapeForegroundColor,
-l=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";e=b.createImageForPageLink(e.originalSrc);this.shapeBackgroundColor=l;this.shapeForegroundColor=f;this.stylesheet=g}return e};var p=this.clearDefaultStyle;this.clearDefaultStyle=function(){p.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");
+k=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";e=b.createImageForPageLink(e.originalSrc);this.shapeBackgroundColor=k;this.shapeForegroundColor=f;this.stylesheet=g}return e};var p=this.clearDefaultStyle;this.clearDefaultStyle=function(){p.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 t=b.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return t.apply(this,arguments)};var y=c.addClickHandler;c.addClickHandler=function(b,d,e){var g=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null!=
d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=g&&g(b,d)};y.call(this,b,d,e)};f.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?x.apply(this,arguments):b.menus.addMenuItems(d,"delete - cut copy copyAsImage - duplicate".split(" "),
null,e)}}b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var F=c.getExportVariables;c.getExportVariables=function(){var d=F.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,
@@ -3627,18 +3631,18 @@ b.currentPage)+1:1;return d};var H=c.getGlobalVariable;c.getGlobalVariable=funct
mxEvent.isPopupTrigger(e))z.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(g),c.getRubberband().reset();mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var D=this.actions.get("print");D.setEnabled(!mxClient.IS_IOS||!navigator.standalone);D.visible=D.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,
!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&c.addListener(mxEvent.EDITING_STARTED,
mxUtils.bind(this,function(b){var d=c.cellEditor.text2,e=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=e&&(e.parentNode.removeChild(e),e=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(d));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<
-b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,g,f,l){c.insertImage(b,f,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var e=Math.max(1,
+b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,g,f,k){c.insertImage(b,f,k)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var e=Math.max(1,
b.width);b=Math.max(1,b.height);var g=this.maxImageSize,g=Math.min(1,Math.min(g/Math.max(1,e)),g/Math.max(1,b));c.insertImage(decodeURIComponent(d),e*g,b*g)})):document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"));b.stopPropagation();
b.preventDefault()})))}));this.isSettingsEnabled()&&(D=this.editor.graph.view,D.setUnit(mxSettings.getUnit()),D.addListener("unitChanged",function(b,d){mxSettings.setUnit(d.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,D.unit),this.refresh());if("1"==urlParams.styledev){D=document.getElementById("geFooter");null!=D&&(this.styleInput=
document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),D.appendChild(this.styleInput),
this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,d){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var N=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:N.apply(this,arguments)}}D=document.getElementById("geInfo");
null!=D&&D.parentNode.removeChild(D);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(c.container,"dragleave",function(b){c.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),E=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==E&&(!mxClient.IS_IE||10<document.documentMode)&&(E=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();
-b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=E&&(E.parentNode.removeChild(E),E=null);if(c.isEnabled()){var d=mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=c.view.translate,g=c.view.scale,f=d.x/g-e.x,l=d.y/g-e.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=f=null),this.importFiles(b.dataTransfer.files,f,l,this.maxImageSize,null,null,null,
-null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=f=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,f,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var n=null,e=d.getElementsByTagName("img");
-null!=e&&1==e.length?(m=e[0].getAttribute("src"),null==m&&(m=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(n=!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var q=!0,p=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,f,l,!0,n,null,q,mxEvent.isControlDown(b)))});n&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){q=
-b;p()},mxEvent.isControlDown(b)):p()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",f,l,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(k,
-f,l,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,l,!0))}}b.stopPropagation();b.preventDefault()}),!1)}c.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var b=this.editor.graph;b.container.addEventListener("paste",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d))try{for(var c=
-d.clipboardData||d.originalEvent.clipboardData,e=!1,g=0;g<c.types.length;g++)if("text/"===c.types[g].substring(0,5)){e=!0;break}if(!e){var f=c.items;for(index in f){var k=f[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,g,f,l){b.insertImage(d,f,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()});else{var p=this.editor.graph.getInsertPoint();this.importFiles([k.getAsFile()],
+b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=E&&(E.parentNode.removeChild(E),E=null);if(c.isEnabled()){var d=mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=c.view.translate,g=c.view.scale,f=d.x/g-e.x,k=d.y/g-e.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(k=f=null),this.importFiles(b.dataTransfer.files,f,k,this.maxImageSize,null,null,null,
+null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(k=f=0);var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,f,k,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var n=null,e=d.getElementsByTagName("img");
+null!=e&&1==e.length?(m=e[0].getAttribute("src"),null==m&&(m=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(n=!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var p=!0,q=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,f,k,!0,n,null,p,mxEvent.isControlDown(b)))});n&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){p=
+b;q()},mxEvent.isControlDown(b)):q()}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",f,k,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+l+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(l,
+f,k,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,k,!0))}}b.stopPropagation();b.preventDefault()}),!1)}c.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var b=this.editor.graph;b.container.addEventListener("paste",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d))try{for(var c=
+d.clipboardData||d.originalEvent.clipboardData,e=!1,g=0;g<c.types.length;g++)if("text/"===c.types[g].substring(0,5)){e=!0;break}if(!e){var f=c.items;for(index in f){var k=f[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,g,f,k){b.insertImage(d,f,k)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()});else{var p=this.editor.graph.getInsertPoint();this.importFiles([k.getAsFile()],
p.x,p.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(y){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function b(){window.setTimeout(function(){e.innerHTML="&nbsp;";e.focus();document.execCommand("selectAll",!1,null)},0)}var c=this.editor.graph,e=document.createElement("div");e.setAttribute("autocomplete","off");e.setAttribute("autocorrect","off");e.setAttribute("autocapitalize","off");e.setAttribute("spellcheck","false");e.style.textRendering="optimizeSpeed";e.style.fontFamily=
"monospace";e.style.wordBreak="break-all";e.style.background="transparent";e.style.color="transparent";e.style.position="absolute";e.style.whiteSpace="nowrap";e.style.overflow="hidden";e.style.display="block";e.style.fontSize="1";e.style.zIndex="-1";e.style.resize="none";e.style.outline="none";e.style.width="1px";e.style.height="1px";mxUtils.setOpacity(e,0);e.contentEditable=!0;e.innerHTML="&nbsp;";var f=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,
null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);null==c.container||!c.isEnabled()||c.isMouseDown||c.isEditing()||null!=this.dialog||"INPUT"==d.nodeName||"TEXTAREA"==d.nodeName||224!=b.keyCode&&(mxClient.IS_MAC||17!=b.keyCode)&&(!mxClient.IS_MAC||91!=b.keyCode&&93!=b.keyCode)||f||(e.style.left=c.container.scrollLeft+10+"px",e.style.top=c.container.scrollTop+10+"px",c.container.appendChild(e),f=!0,e.focus(),document.execCommand("selectAll",!1,null))}));
@@ -3653,27 +3657,27 @@ EditorUi.prototype.doSetSketchMode=function(b){if(Editor.sketchMode!=b){var d=fu
b.substring(0,5)&&(d=mxResources.get("action"));return d};EditorUi.prototype.handleCustomLink=function(b){if(Graph.isPageLink(b)){var d=b.indexOf(",");if(b=this.getPageById(b.substring(d+1)))this.selectPage(b);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(b)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){Editor.pagesVisible=
mxSettings.settings.pagesVisible;ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(b){b.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(d){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",
mxUtils.bind(this,function(b,c){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);else{var d=c.getProperty("customFonts");this.menus.customFonts=d;mxSettings.setCustomFonts(d)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());
-mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.addListener("gridColorChanged",mxUtils.bind(this,function(b,c){mxSettings.setGridColor(this.editor.graph.view.gridColor,
-Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(b,c){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",
-mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(b,c,e){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(b,
-d){try{this.spinner.stop();var e=this.createImageDataUri(b,c,"png"),g=parseInt(d.getAttribute("width")),f=parseInt(d.getAttribute("height"));this.writeImageToClipboard(e,g,f,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(y){this.handleError(y)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null!=e?e:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(q){this.handleError(q)}};
-EditorUi.prototype.writeImageToClipboard=function(b,c,e,f){var d=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":d,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+e+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](f)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var e=mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),g=mxUtils.getXml(d.encodeCells(e));
-mxUtils.setTextContent(b,encodeURIComponent(g));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=g,d.pasteCounter=0);b.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var b=null;if(Editor.enableNativeCipboard){var c=this.editor.graph;c.isSelectionEmpty()||(b=mxUtils.sortCells(c.getExportableCells(c.model.getTopmostCells(c.getSelectionCells()))),c=mxUtils.getXml(c.encodeCells(b)),navigator.clipboard.writeText(c))}return b};EditorUi.prototype.pasteXml=
-function(b,c,e,f){var d=this.editor.graph,g=null;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var k=d.pasteCounter*d.gridSize;if(e||this.isCompatibleString(b))g=this.importXml(b,k,k),d.setSelectionCells(g);else if(c&&1==d.getSelectionCount()){k=d.getStartEditingCell(d.getSelectionCell(),f);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==d.getCurrentCellStyle(k)[mxConstants.STYLE_SHAPE])d.setCellStyles(mxConstants.STYLE_IMAGE,b,[k]);else{d.model.beginUpdate();try{d.labelChanged(k,
-b),Graph.isLink(b)&&d.setLinkForCell(k,b)}finally{d.model.endUpdate()}}d.setSelectionCell(k)}else g=d.getInsertPoint(),d.isMouseInsertPoint()&&(k=0,d.lastPasteXml==b&&0<d.pasteCounter&&d.pasteCounter--),g=this.insertTextAt(b,g.x+k,g.y+k,!0),d.setSelectionCells(g);d.isSelectionEmpty()||(d.scrollCellToVisible(d.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell())));return g};EditorUi.prototype.pasteCells=function(b,c,e,f){if(!mxEvent.isConsumed(b)){var d=
-c,g=!1;if(e&&null!=b.clipboardData&&b.clipboardData.getData){var k=b.clipboardData.getData("text/plain"),l=!1;if(null!=k&&0<k.length&&"%3CmxGraphModel%3E"==k.substring(0,18)){var p=decodeURIComponent(k);this.isCompatibleString(p)&&(l=!0,k=p)}l=l?null:b.clipboardData.getData("text/html");null!=l&&0<l.length?(d=this.parseHtmlData(l),g="text/plain"!=d.getAttribute("data-type")):null!=k&&0<k.length&&(d=document.createElement("div"),mxUtils.setTextContent(d,l))}k=d.getElementsByTagName("span");if(null!=
-k&&0<k.length&&"application/vnd.lucid.chart.objects"===k[0].getAttribute("data-lucid-type"))e=k[0].getAttribute("data-lucid-content"),null!=e&&0<e.length&&(this.convertLucidChart(e,mxUtils.bind(this,function(b){var d=this.editor.graph;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var c=d.pasteCounter*d.gridSize;d.setSelectionCells(this.importXml(b,c,c));d.scrollCellToVisible(d.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),mxEvent.consume(b));else{g=
-g?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var q=g.lastIndexOf("%3E");0<=q&&q<g.length-3&&(g=g.substring(0,q+3))}catch(H){}try{k=d.getElementsByTagName("span"),p=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(p)&&(l=!0,g=p)}catch(H){}try{if(null!=g&&0<g.length){this.pasteXml(g,f,l,b);try{mxEvent.consume(b)}catch(H){}}else if(!e){var t=this.editor.graph;t.lastPasteXml=null;t.pasteCounter=
-0}}catch(H){this.handleError(H)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==d&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(d=
-this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[c],"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<b.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b)):this.openFiles(b.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(b);
-if(null==c){var e=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=e&&(10==document.documentMode||11==document.documentMode?c=e.getData("Text"):(c=null,c=0<=mxUtils.indexOf(e.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(e.types,"text/html")?e.getData("text/html"):null,null!=c&&0<c.length?(e=document.createElement("div"),e.innerHTML=this.editor.graph.sanitizeHtml(c),e=e.getElementsByTagName("img"),0<e.length&&(c=e[0].getAttribute("src"))):0<=mxUtils.indexOf(e.types,
-"text/plain")&&(c=e.getData("text/plain"))),null!=c&&(Editor.isPngDataUrl(c)?(c=Editor.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):
-window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var d=0,c=0,e,f;if(null==b){f=document.body;var k=document.documentElement;e=(f.clientWidth||k.clientWidth)-3;f=Math.max(f.clientHeight||0,k.clientHeight)-3}else d=b.offsetTop,c=b.offsetLeft,e=b.clientWidth,f=b.clientHeight;k=document.createElement("div");
-k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254, 137, 12)";k.style.pointerEvents="none";k.style.position="absolute";k.style.top=d+"px";k.style.left=c+"px";k.style.width=Math.max(0,e-3)+"px";k.style.height=Math.max(0,f-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var d=this.editor.extractGraphModel(b.documentElement);
-b=[];if(null!=d){var c=new mxCodec(d.ownerDocument),e=new mxGraphModel;c.decode(d,e);d=e.getChildAt(e.getRoot(),0);for(c=0;c<e.getChildCount(d);c++)b.push(e.getChildAt(d,c))}return b};EditorUi.prototype.openFileHandle=function(b,c,e,f,k){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+
-".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,f)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,
-mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(e,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?d(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,
-c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,f)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
+mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.editor.graph.view.defaultDarkGridColor=mxSettings.getGridColor(!0);this.editor.graph.view.defaultGridColor=mxSettings.getGridColor(!1);
+this.addListener("gridColorChanged",mxUtils.bind(this,function(b,c){mxSettings.setGridColor(this.editor.graph.view.gridColor,Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(b,c){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),
+this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(b,c,e){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&
+this.editor.exportToCanvas(mxUtils.bind(this,function(b,d){try{this.spinner.stop();var e=this.createImageDataUri(b,c,"png"),g=parseInt(d.getAttribute("width")),f=parseInt(d.getAttribute("height"));this.writeImageToClipboard(e,g,f,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(y){this.handleError(y)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null!=e?e:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,
+null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(q){this.handleError(q)}};EditorUi.prototype.writeImageToClipboard=function(b,c,e,f){var d=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":d,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+e+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](f)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var e=
+mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),g=mxUtils.getXml(d.encodeCells(e));mxUtils.setTextContent(b,encodeURIComponent(g));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=g,d.pasteCounter=0);b.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var b=null;if(Editor.enableNativeCipboard){var c=this.editor.graph;c.isSelectionEmpty()||(b=mxUtils.sortCells(c.getExportableCells(c.model.getTopmostCells(c.getSelectionCells()))),
+c=mxUtils.getXml(c.encodeCells(b)),navigator.clipboard.writeText(c))}return b};EditorUi.prototype.pasteXml=function(b,c,e,f){var d=this.editor.graph,g=null;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var k=d.pasteCounter*d.gridSize;if(e||this.isCompatibleString(b))g=this.importXml(b,k,k),d.setSelectionCells(g);else if(c&&1==d.getSelectionCount()){k=d.getStartEditingCell(d.getSelectionCell(),f);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==d.getCurrentCellStyle(k)[mxConstants.STYLE_SHAPE])d.setCellStyles(mxConstants.STYLE_IMAGE,
+b,[k]);else{d.model.beginUpdate();try{d.labelChanged(k,b),Graph.isLink(b)&&d.setLinkForCell(k,b)}finally{d.model.endUpdate()}}d.setSelectionCell(k)}else g=d.getInsertPoint(),d.isMouseInsertPoint()&&(k=0,d.lastPasteXml==b&&0<d.pasteCounter&&d.pasteCounter--),g=this.insertTextAt(b,g.x+k,g.y+k,!0),d.setSelectionCells(g);d.isSelectionEmpty()||(d.scrollCellToVisible(d.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell())));return g};EditorUi.prototype.pasteCells=
+function(b,c,e,f){if(!mxEvent.isConsumed(b)){var d=c,g=!1;if(e&&null!=b.clipboardData&&b.clipboardData.getData){var k=b.clipboardData.getData("text/plain"),l=!1;if(null!=k&&0<k.length&&"%3CmxGraphModel%3E"==k.substring(0,18)){var p=decodeURIComponent(k);this.isCompatibleString(p)&&(l=!0,k=p)}l=l?null:b.clipboardData.getData("text/html");null!=l&&0<l.length?(d=this.parseHtmlData(l),g="text/plain"!=d.getAttribute("data-type")):null!=k&&0<k.length&&(d=document.createElement("div"),mxUtils.setTextContent(d,
+l))}k=d.getElementsByTagName("span");if(null!=k&&0<k.length&&"application/vnd.lucid.chart.objects"===k[0].getAttribute("data-lucid-type"))e=k[0].getAttribute("data-lucid-content"),null!=e&&0<e.length&&(this.convertLucidChart(e,mxUtils.bind(this,function(b){var d=this.editor.graph;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var c=d.pasteCounter*d.gridSize;d.setSelectionCells(this.importXml(b,c,c));d.scrollCellToVisible(d.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),
+mxEvent.consume(b));else{g=g?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var q=g.lastIndexOf("%3E");0<=q&&q<g.length-3&&(g=g.substring(0,q+3))}catch(H){}try{k=d.getElementsByTagName("span"),p=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(p)&&(l=!0,g=p)}catch(H){}try{if(null!=g&&0<g.length){this.pasteXml(g,f,l,b);try{mxEvent.consume(b)}catch(H){}}else if(!e){var t=this.editor.graph;
+t.lastPasteXml=null;t.pasteCounter=0}}catch(H){this.handleError(H)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==d&&(!mxClient.IS_IE||10<document.documentMode&&
+12>document.documentMode)&&(d=this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[c],"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<b.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b)):this.openFiles(b.dataTransfer.files,!0);
+else{var c=this.extractGraphModelFromEvent(b);if(null==c){var e=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=e&&(10==document.documentMode||11==document.documentMode?c=e.getData("Text"):(c=null,c=0<=mxUtils.indexOf(e.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(e.types,"text/html")?e.getData("text/html"):null,null!=c&&0<c.length?(e=document.createElement("div"),e.innerHTML=this.editor.graph.sanitizeHtml(c),e=e.getElementsByTagName("img"),0<e.length&&
+(c=e[0].getAttribute("src"))):0<=mxUtils.indexOf(e.types,"text/plain")&&(c=e.getData("text/plain"))),null!=c&&(Editor.isPngDataUrl(c)?(c=Editor.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?
+window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var d=0,c=0,e,f;if(null==b){f=document.body;var k=document.documentElement;e=(f.clientWidth||k.clientWidth)-3;f=Math.max(f.clientHeight||0,k.clientHeight)-3}else d=b.offsetTop,c=b.offsetLeft,
+e=b.clientWidth,f=b.clientHeight;k=document.createElement("div");k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254, 137, 12)";k.style.pointerEvents="none";k.style.position="absolute";k.style.top=d+"px";k.style.left=c+"px";k.style.width=Math.max(0,e-3)+"px";k.style.height=Math.max(0,f-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(b){b=
+mxUtils.parseXml(b);var d=this.editor.extractGraphModel(b.documentElement);b=[];if(null!=d){var c=new mxCodec(d.ownerDocument),e=new mxGraphModel;c.decode(d,e);d=e.getChildAt(e.getRoot(),0);for(c=0;c<e.getChildCount(d);c++)b.push(e.getChildAt(d,c))}return b};EditorUi.prototype.openFileHandle=function(b,c,e,f,k){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,
+function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,f)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(e,mxUtils.bind(this,function(b){this.spinner.stop();
+d(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(e,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?d(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&
+(c=c.substring(0,c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,f)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
b.indexOf("PK"))this.importZipFile(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(b,c,f)}));else{if("image/png"==e.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==e.type){var g=Editor.extractGraphModelFromPdf(b);null!=g&&(k=null,f=!0,b=g)}this.spinner.stop();this.openLocalFile(b,c,f,k,null!=k?e:null)}}};EditorUi.prototype.openFiles=function(b,c){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=
0;d<b.length;d++)mxUtils.bind(this,function(b){var d=new FileReader;d.onload=mxUtils.bind(this,function(d){try{this.openFileHandle(d.target.result,b.name,b,c)}catch(u){this.handleError(u)}});d.onerror=mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b);window.openFile=null});"image"!==b.type.substring(0,5)&&"application/pdf"!==b.type||"image/svg"===b.type.substring(0,9)?d.readAsText(b):d.readAsDataURL(b)})(b[d])};EditorUi.prototype.openLocalFile=function(b,c,e,f,k){var d=this.getCurrentFile(),
g=mxUtils.bind(this,function(){window.openFile=null;if(null==c&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(b);null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,b,c||this.defaultFilename,e,f,k))});if(null!=b&&0<b.length)null==d||!d.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)?g():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)&&null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),
@@ -3684,59 +3688,59 @@ b?"":"none";this.editor.graph.setEnabled(b);null!=this.ruler&&(this.ruler.hRuler
this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);if((window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))){var b=!1;this.installMessageHandler(mxUtils.bind(this,function(d,c,e,f){b||(b=!0,this.spinner.stop(),this.addEmbedButtons(),this.setGraphEnabled(!0));
if(null==d||0==d.length)d=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,d,{}));this.mode=App.MODE_EMBED;this.setFileData(d);if(f)try{var g=this.editor.graph;g.setGridEnabled(!1);g.pageVisible=!1;var k=g.model.cells,l;for(l in k){var m=k[l];null!=m&&null!=m.style&&(m.style+=";sketch=1;"+(-1==m.style.indexOf("fontFamily=")||-1<m.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":
""))}}catch(x){console.log(x)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=e?e:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))}};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?
-this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(b,c){null!=b?b.getPublicUrl(c):c(null)};EditorUi.prototype.createLoadMessage=function(b){var d=this.editor.graph;return{event:b,pageVisible:d.pageVisible,translate:d.view.translate,bounds:d.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:d.view.scale,page:d.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(b){var d=this.editor.graph;
-d.isEditing()&&d.stopEditing(!d.isInvokesStopCellEditing());var c=window.opener||window.parent;if(this.editor.modified){var e=d.background;if(null==e||e==mxConstants.NONE)e=this.embedExportBackground;this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),d,null,!0,mxUtils.bind(this,function(d){c.postMessage(JSON.stringify({event:"export",point:this.embedExitPoint,exit:null!=b?!b:!0,data:Editor.createSvgDataUri(d)}),"*")}),null,null,!0,e,1,this.embedExportBorder)}else b||
-c.postMessage(JSON.stringify({event:"exit",point:this.embedExitPoint}),"*");b||(this.diagramContainer.removeAttribute("data-bounds"),Editor.inlineFullscreen=!1,d.model.clear(),this.editor.undoManager.clear(),this.setBackgroundImage(null),this.editor.modified=!1,this.fireEvent(new mxEventObject("editInlineStop")))};EditorUi.prototype.installMessageHandler=function(b){var d=null,c=!1,e=!1,f=null,k=mxUtils.bind(this,function(b,d){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&
+this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(b,c){null!=b?b.getPublicUrl(c):c(null)};EditorUi.prototype.createLoadMessage=function(b){var c=this.editor.graph;return{event:b,pageVisible:c.pageVisible,translate:c.view.translate,bounds:c.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:c.view.scale,page:c.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(b){var c=this.editor.graph;
+c.isEditing()&&c.stopEditing(!c.isInvokesStopCellEditing());var d=window.opener||window.parent;if(this.editor.modified){var e=c.background;if(null==e||e==mxConstants.NONE)e=this.embedExportBackground;this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),c,null,!0,mxUtils.bind(this,function(c){d.postMessage(JSON.stringify({event:"export",point:this.embedExitPoint,exit:null!=b?!b:!0,data:Editor.createSvgDataUri(c)}),"*")}),null,null,!0,e,1,this.embedExportBorder)}else b||
+d.postMessage(JSON.stringify({event:"exit",point:this.embedExitPoint}),"*");b||(this.diagramContainer.removeAttribute("data-bounds"),Editor.inlineFullscreen=!1,c.model.clear(),this.editor.undoManager.clear(),this.setBackgroundImage(null),this.editor.modified=!1,this.fireEvent(new mxEventObject("editInlineStop")))};EditorUi.prototype.installMessageHandler=function(b){var c=null,d=!1,e=!1,f=null,k=mxUtils.bind(this,function(b,c){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(g){if(g.source==(window.opener||window.parent)){var k=g.data,l=null,m=mxUtils.bind(this,function(b){if(null!=b&&"function"===typeof b.charAt&&"<"!=b.charAt(0))try{Editor.isPngDataUrl(b)?b=Editor.extractGraphModelFromPng(b):"data:image/svg+xml;base64,"==b.substring(0,26)?b=atob(b.substring(26)):
"data:image/svg+xml;utf8,"==b.substring(0,24)&&(b=b.substring(24)),null!=b&&("%"==b.charAt(0)?b=decodeURIComponent(b):"<"!=b.charAt(0)&&(b=Graph.decompress(b)))}catch(ra){}return b});if("json"==urlParams.proto){var n=!1;try{k=JSON.parse(k)}catch(ka){k=null}try{if(null==k)return;if("dialog"==k.action){this.showError(null!=k.titleKey?mxResources.get(k.titleKey):k.title,null!=k.messageKey?mxResources.get(k.messageKey):k.message,null!=k.buttonKey?mxResources.get(k.buttonKey):k.button);null!=k.modified&&
(this.editor.modified=k.modified);return}if("layout"==k.action){this.executeLayoutList(k.layouts);return}if("prompt"==k.action){this.spinner.stop();var q=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):k.ok,function(b){null!=b?p.postMessage(JSON.stringify({event:"prompt",value:b,message:k}),"*"):p.postMessage(JSON.stringify({event:"prompt-cancel",message:k}),"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(q.container,300,80,!0,!1);q.init();
return}if("draft"==k.action){var t=m(k.xml);this.spinner.stop();q=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),t,mxUtils.bind(this,function(){this.hideDialog();p.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();p.postMessage(JSON.stringify({event:"draft",result:"discard",message:k}),"*")}),k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxResources.get(k.discardKey):null,k.ignore?mxUtils.bind(this,
function(){this.hideDialog();p.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(q.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));try{q.init()}catch(ka){p.postMessage(JSON.stringify({event:"draft",error:ka.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var u=1==k.enableRecent,v=1==k.enableSearch,C=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=
-k.callback){var y=this.getCurrentUser(),M=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;p.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=y?y.id:null,u?mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getRecentDiagrams",[c],null,b,d)}):null,v?mxUtils.bind(this,function(b,
-d,c,e){this.remoteInvoke("searchDiagrams",[b,e],null,d,c)}):null,mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getFileContent",[b.url],null,d,c)}),null,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(M.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(d,c,e,f){d=d||this.emptyDiagramXml;null!=
-k.callback?p.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:f,builtIn:!0,message:k}),"*"):(b(d,g,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,v?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",[b,null],null,d,function(){d(null,
-"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){p.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==k.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==k.action){var Z=this.getDiagramTextContent();p.postMessage(JSON.stringify({event:"textContent",
-data:Z,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var L=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,L):this.spinner.stop();return}if("exit"==k.action){this.actions.get("exit").funct();
-return}if("viewport"==k.action){null!=k.viewport&&(this.embedViewport=k.viewport);return}if("snapshot"==k.action){this.sendEmbeddedSvgExport(!0);return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var O=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var U=this.editor.graph,G=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();
-var d=this.createLoadMessage("export");d.format=k.format;d.message=k;d.data=b;d.xml=O;p.postMessage(JSON.stringify(d),"*")}),I=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(O)));U!=this.editor.graph&&U.container.parentNode.removeChild(U.container);G(b)}),B=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var ca=mxUtils.bind(this,
-function(){if(null!=this.pages&&this.currentPage.getId()!=B){var b=U.getGlobalVariable;U=this.createTemporaryGraph(U.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==B){d=this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);U.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(U.container);U.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=U.model,g=e.getChildCells(e.getRoot()),
-f={},c=0;c<k.layerIds.length;c++)f[k.layerIds[c]]=!0;for(c=0;c<g.length;c++)e.setVisible(g[c],f[g[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){I(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){I(null)}),null,null,k.scale,k.transparent,k.shadow,null,U,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(O),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ca)},0):ca()):
-ca()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=B?"&pageId="+B:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(O))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?G("data:image/png;base64,"+b.getText()):I(null)}),mxUtils.bind(this,function(){I(null)}))}}else ca=mxUtils.bind(this,function(){var b=
-this.createLoadMessage("export");b.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var d=this.getXmlFileData();b.xml=mxUtils.getXml(d);b.data=this.getFileData(null,null,!0,null,null,null,d);b.format=k.format}else if("html"==k.format)d=this.editor.getGraphXml(),b.data=this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;d=null!=k.background?k.background:this.editor.graph.background;
-d==mxConstants.NONE&&(d=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var c=mxUtils.bind(this,function(d){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(d);p.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(b.xml,this.editor.graph,null,!0,c,null,null,k.embedImages,d,k.scale,
-k.border,k.shadow,k.keepTheme);else if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))this.editor.graph.setEnabled(!1),d=this.editor.graph.getSvg(d,k.scale,k.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||k.shadow,null,k.keepTheme),(this.editor.graph.shadowVisible||k.shadow)&&this.editor.graph.addSvgShadow(d),this.embedFonts(d,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,
-mxUtils.bind(this,function(b){c(mxUtils.getXml(b))})):c(mxUtils.getXml(b))}));return}p.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(k.xml),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ca)},0):ca()):ca();return}if("load"==k.action){n=k.toSketch;e=1==k.autosave;this.hideDialog();null!=k.modified&&null==urlParams.modified&&(urlParams.modified=k.modified);null!=k.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=
+k.callback){var y=this.getCurrentUser(),L=new TemplatesDialog(this,function(b,c,d){b=b||this.emptyDiagramXml;p.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d.url,libs:d.libs,builtIn:null!=d.info&&null!=d.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=y?y.id:null,u?mxUtils.bind(this,function(b,c,d){this.remoteInvoke("getRecentDiagrams",[d],null,b,c)}):null,v?mxUtils.bind(this,function(b,
+c,d,e){this.remoteInvoke("searchDiagrams",[b,e],null,c,d)}):null,mxUtils.bind(this,function(b,c,d){this.remoteInvoke("getFileContent",[b.url],null,c,d)}),null,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(L.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(c,d,e,f){c=c||this.emptyDiagramXml;null!=
+k.callback?p.postMessage(JSON.stringify({event:"template",xml:c,blank:c==this.emptyDiagramXml,name:d,tempUrl:e,libs:f,builtIn:!0,message:k}),"*"):(b(c,g,c!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,v?mxUtils.bind(this,function(b,c){this.remoteInvoke("searchDiagrams",[b,null],null,c,function(){c(null,
+"Network Error!")})}):null,mxUtils.bind(this,function(b,c,d){p.postMessage(JSON.stringify({event:"template",docUrl:b,info:c,name:d}),"*")}),null,null,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==k.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==k.action){var Z=this.getDiagramTextContent();p.postMessage(JSON.stringify({event:"textContent",
+data:Z,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var M=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,M):this.spinner.stop();return}if("exit"==k.action){this.actions.get("exit").funct();
+return}if("viewport"==k.action){null!=k.viewport&&(this.embedViewport=k.viewport);return}if("snapshot"==k.action){this.sendEmbeddedSvgExport(!0);return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var P=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var U=this.editor.graph,G=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();
+var c=this.createLoadMessage("export");c.format=k.format;c.message=k;c.data=b;c.xml=P;p.postMessage(JSON.stringify(c),"*")}),I=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(P)));U!=this.editor.graph&&U.container.parentNode.removeChild(U.container);G(b)}),B=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var ca=mxUtils.bind(this,
+function(){if(null!=this.pages&&this.currentPage.getId()!=B){var b=U.getGlobalVariable;U=this.createTemporaryGraph(U.getStylesheet());for(var c,d=0;d<this.pages.length;d++)if(this.pages[d].getId()==B){c=this.updatePageRoot(this.pages[d]);break}null==c&&(c=this.currentPage);U.getGlobalVariable=function(d){return"page"==d?c.getName():"pagenumber"==d?1:b.apply(this,arguments)};document.body.appendChild(U.container);U.model.setRoot(c.root)}if(null!=k.layerIds){for(var e=U.model,g=e.getChildCells(e.getRoot()),
+f={},d=0;d<k.layerIds.length;d++)f[k.layerIds[d]]=!0;for(d=0;d<g.length;d++)e.setVisible(g[d],f[g[d].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){I(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){I(null)}),null,null,k.scale,k.transparent,k.shadow,null,U,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(d=!0,this.setFileData(P),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ca)},0):ca()):
+ca()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=B?"&pageId="+B:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(P))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?G("data:image/png;base64,"+b.getText()):I(null)}),mxUtils.bind(this,function(){I(null)}))}}else ca=mxUtils.bind(this,function(){var b=
+this.createLoadMessage("export");b.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var c=this.getXmlFileData();b.xml=mxUtils.getXml(c);b.data=this.getFileData(null,null,!0,null,null,null,c);b.format=k.format}else if("html"==k.format)c=this.editor.getGraphXml(),b.data=this.getHtml(c,this.editor.graph),b.xml=mxUtils.getXml(c),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;c=null!=k.background?k.background:this.editor.graph.background;
+c==mxConstants.NONE&&(c=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var d=mxUtils.bind(this,function(c){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(c);p.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(b.xml,this.editor.graph,null,!0,d,null,null,k.embedImages,c,k.scale,
+k.border,k.shadow,k.keepTheme);else if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))this.editor.graph.setEnabled(!1),c=this.editor.graph.getSvg(c,k.scale,k.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||k.shadow,null,k.keepTheme),(this.editor.graph.shadowVisible||k.shadow)&&this.editor.graph.addSvgShadow(c),this.embedFonts(c,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,
+mxUtils.bind(this,function(b){d(mxUtils.getXml(b))})):d(mxUtils.getXml(b))}));return}p.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(d=!0,this.setFileData(k.xml),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ca)},0):ca()):ca();return}if("load"==k.action){n=k.toSketch;e=1==k.autosave;this.hideDialog();null!=k.modified&&null==urlParams.modified&&(urlParams.modified=k.modified);null!=k.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=
k.saveAndExit);null!=k.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=k.noSaveBtn);if(null!=k.rough){var S=Editor.sketchMode;this.doSetSketchMode(k.rough);S!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(S=Editor.darkMode,this.doSetDarkMode(k.dark),S!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=k.border&&(this.embedExportBorder=k.border);null!=k.background&&(this.embedExportBackground=k.background);null!=k.viewport&&
-(this.embedViewport=k.viewport);this.embedExitPoint=null;if(null!=k.rect){var Q=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";l=mxUtils.bind(this,function(){var b=this.editor.graph,d=b.maxFitScale;
-b.maxFitScale=k.maxFitScale;b.fit(2*Q);b.maxFitScale=d;b.container.scrollTop-=2*Q;b.container.scrollLeft-=2*Q;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=
+(this.embedViewport=k.viewport);this.embedExitPoint=null;if(null!=k.rect){var Q=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";l=mxUtils.bind(this,function(){var b=this.editor.graph,c=b.maxFitScale;
+b.maxFitScale=k.maxFitScale;b.fit(2*Q);b.maxFitScale=c;b.container.scrollTop-=2*Q;b.container.scrollLeft-=2*Q;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=
t);try{k.libs&&this.sidebar.showEntries(k.libs)}catch(ka){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var V=this.getCurrentFile();null!=V&&(t=m(k.xml),null!=t&&""!=t&&V.mergeFile(new LocalFile(this,t),function(){p.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){p.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(p):
-"remoteInvoke"==k.action?this.handleRemoteInvoke(k,g.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):p.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(ka){this.handleError(ka)}}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())}),fa=mxUtils.bind(this,function(g,k){c=!0;try{b(g,k,null,n)}catch(ja){this.handleError(ja)}c=
-!1;null!=urlParams.modified&&this.editor.setStatus("");f=oa();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=oa();if(e!=f&&!c){var g=this.createLoadMessage("autosave");g.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}f=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,d),this.editor.graph.addListener("gridSizeChanged",d),this.editor.graph.addListener("shadowVisibleChanged",d),this.addListener("pageFormatChanged",d),this.addListener("pageScaleChanged",d),this.addListener("backgroundColorChanged",
-d),this.addListener("backgroundImageChanged",d),this.addListener("foldingEnabledChanged",d),this.addListener("mathEnabledChanged",d),this.addListener("gridEnabledChanged",d),this.addListener("guidesEnabledChanged",d),this.addListener("pageViewChanged",d));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var m=this.createLoadMessage("load");m.xml=g;p.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,
+"remoteInvoke"==k.action?this.handleRemoteInvoke(k,g.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):p.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(ka){this.handleError(ka)}}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())}),fa=mxUtils.bind(this,function(g,k){d=!0;try{b(g,k,null,n)}catch(ja){this.handleError(ja)}d=
+!1;null!=urlParams.modified&&this.editor.setStatus("");f=oa();e&&null==c&&(c=mxUtils.bind(this,function(b,c){var e=oa();if(e!=f&&!d){var g=this.createLoadMessage("autosave");g.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}f=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,c),this.editor.graph.addListener("gridSizeChanged",c),this.editor.graph.addListener("shadowVisibleChanged",c),this.addListener("pageFormatChanged",c),this.addListener("pageScaleChanged",c),this.addListener("backgroundColorChanged",
+c),this.addListener("backgroundImageChanged",c),this.addListener("foldingEnabledChanged",c),this.addListener("mathEnabledChanged",c),this.addListener("gridEnabledChanged",c),this.addListener("guidesEnabledChanged",c),this.addListener("pageViewChanged",c));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var m=this.createLoadMessage("load");m.xml=g;p.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,
34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){fa(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),m)):null!=k&&"function"===typeof k.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,
13)&&fa(b.responseText,g)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){fa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),fa(k,g)):this.loadDescriptor(k,mxUtils.bind(this,function(b){fa(oa(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var p=window.opener||window.parent,k="json"==
-urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";p.postMessage(k,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){t.apply(this,arguments);p.postMessage(JSON.stringify({event:"openLink",href:b,target:d,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop=
+urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";p.postMessage(k,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,c,d){t.apply(this,arguments);p.postMessage(JSON.stringify({event:"openLink",href:b,target:c,allowOpener:d}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop=
"atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var f="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,f);c.setAttribute("title",f);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,
mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right=
"atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};
EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),g=0;g<b.length;g++){var f=new window[b[g].layout](d);if(null!=b[g].config)for(var k in b[g].config)f[k]=b[g].config[k];this.executeLayout(function(){f.execute(d.getDefaultParent(),0==e.length?null:e)},g==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],g=[],f=[],k={};if(0<d.length){var p={},t=null,x=null,F=null,H=null,z=null,D=null,N="whiteSpace=wrap;html=1;",
-E=null,J=null,C="",K="auto",M="auto",Z=null,L=null,O=40,U=40,G=100,I=0,B=this.editor.graph;B.getGraphBounds();for(var ca=function(){null!=c?c(pa):(B.setSelectionCells(pa),B.scrollCellToVisible(B.getSelectionCell()))},S=B.getFreeInsertPoint(),Q=S.x,V=S.y,S=V,oa=null,fa="auto",J=null,ka=[],ra=null,la=null,ja=0;ja<d.length&&"#"==d[ja].charAt(0);){b=d[ja];for(ja++;ja<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ja].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ja].substring(1)),ja++;if("#"!=b.charAt(1)){var aa=
+E=null,J=null,C="",K="auto",L="auto",Z=null,M=null,P=40,U=40,G=100,I=0,B=this.editor.graph;B.getGraphBounds();for(var ca=function(){null!=c?c(pa):(B.setSelectionCells(pa),B.scrollCellToVisible(B.getSelectionCell()))},S=B.getFreeInsertPoint(),Q=S.x,V=S.y,S=V,oa=null,fa="auto",J=null,ka=[],ra=null,la=null,ja=0;ja<d.length&&"#"==d[ja].charAt(0);){b=d[ja];for(ja++;ja<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ja].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ja].substring(1)),ja++;if("#"!=b.charAt(1)){var aa=
b.indexOf(":");if(0<aa){var ba=mxUtils.trim(b.substring(1,aa)),R=mxUtils.trim(b.substring(aa+1));"label"==ba?oa=B.sanitizeHtml(R):"labelname"==ba&&0<R.length&&"-"!=R?z=R:"labels"==ba&&0<R.length&&"-"!=R?D=JSON.parse(R):"style"==ba?x=R:"parentstyle"==ba?N=R:"stylename"==ba&&0<R.length&&"-"!=R?H=R:"styles"==ba&&0<R.length&&"-"!=R?F=JSON.parse(R):"vars"==ba&&0<R.length&&"-"!=R?t=JSON.parse(R):"identity"==ba&&0<R.length&&"-"!=R?E=R:"parent"==ba&&0<R.length&&"-"!=R?J=R:"namespace"==ba&&0<R.length&&"-"!=
-R?C=R:"width"==ba?K=R:"height"==ba?M=R:"left"==ba&&0<R.length?Z=R:"top"==ba&&0<R.length?L=R:"ignore"==ba?la=R.split(","):"connect"==ba?ka.push(JSON.parse(R)):"link"==ba?ra=R:"padding"==ba?I=parseFloat(R):"edgespacing"==ba?O=parseFloat(R):"nodespacing"==ba?U=parseFloat(R):"levelspacing"==ba?G=parseFloat(R):"layout"==ba&&(fa=R)}}}if(null==d[ja])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ja]),ba=aa=null,R=[],W=0;W<sa.length;W++)E==sa[W]&&(aa=W),J==sa[W]&&
+R?C=R:"width"==ba?K=R:"height"==ba?L=R:"left"==ba&&0<R.length?Z=R:"top"==ba&&0<R.length?M=R:"ignore"==ba?la=R.split(","):"connect"==ba?ka.push(JSON.parse(R)):"link"==ba?ra=R:"padding"==ba?I=parseFloat(R):"edgespacing"==ba?P=parseFloat(R):"nodespacing"==ba?U=parseFloat(R):"levelspacing"==ba?G=parseFloat(R):"layout"==ba&&(fa=R)}}}if(null==d[ja])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ja]),ba=aa=null,R=[],W=0;W<sa.length;W++)E==sa[W]&&(aa=W),J==sa[W]&&
(ba=W),R.push(mxUtils.trim(sa[W]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==oa&&(oa="%"+R[0]+"%");if(null!=ka)for(var X=0;X<ka.length;X++)null==p[ka[X].to]&&(p[ka[X].to]={});E=[];for(W=ja+1;W<d.length;W++){var ma=this.editor.csvToArray(d[W]);if(null==ma){var qa=40<d[W].length?d[W].substring(0,40)+"...":d[W];throw Error(qa+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&E.push(ma)}B.model.beginUpdate();try{for(W=0;W<E.length;W++){var ma=E[W],T=
null,ia=null!=aa?C+ma[aa]:null;null!=ia&&(T=B.model.getCell(ia));var d=null!=T,da=new mxCell(oa,new mxGeometry(Q,S,0,0),x||"whiteSpace=wrap;html=1;");da.vertex=!0;da.id=ia;for(var na=0;na<ma.length;na++)B.setAttributeForCell(da,R[na],ma[na]);if(null!=z&&null!=D){var ha=D[da.getAttribute(z)];null!=ha&&B.labelChanged(da,ha)}if(null!=H&&null!=F){var ua=F[da.getAttribute(H)];null!=ua&&(da.style=ua)}B.setAttributeForCell(da,"placeholders","1");da.style=B.replacePlaceholders(da,da.style,t);d?(B.model.setValue(T,
-da.value),B.model.setStyle(T,da.style),0>mxUtils.indexOf(f,T)&&f.push(T),B.fireEvent(new mxEventObject("cellsInserted","cells",[T]))):B.fireEvent(new mxEventObject("cellsInserted","cells",[da]));T=da;if(!d)for(X=0;X<ka.length;X++)p[ka[X].to][T.getAttribute(ka[X].to)]=T;null!=ra&&"link"!=ra&&(B.setLinkForCell(T,T.getAttribute(ra)),B.setAttributeForCell(T,ra,null));var P=this.editor.graph.getPreferredSizeForCell(T),J=null!=ba?B.model.getCell(C+ma[ba]):null;if(T.vertex){qa=null!=J?0:Q;ja=null!=J?0:V;
-null!=Z&&null!=T.getAttribute(Z)&&(T.geometry.x=qa+parseFloat(T.getAttribute(Z)));null!=L&&null!=T.getAttribute(L)&&(T.geometry.y=ja+parseFloat(T.getAttribute(L)));var ea="@"==K.charAt(0)?T.getAttribute(K.substring(1)):null;T.geometry.width=null!=ea&&"auto"!=ea?parseFloat(T.getAttribute(K.substring(1))):"auto"==K||"auto"==ea?P.width+I:parseFloat(K);var ta="@"==M.charAt(0)?T.getAttribute(M.substring(1)):null;T.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==M||"auto"==ta?P.height+I:parseFloat(M);
-S+=T.geometry.height+U}d?(null==k[ia]&&(k[ia]=[]),k[ia].push(T)):(e.push(T),null!=J?(J.style=B.replacePlaceholders(J,N,t),B.addCell(T,J),g.push(J)):f.push(B.addCell(T)))}for(W=0;W<g.length;W++)ea="@"==K.charAt(0)?g[W].getAttribute(K.substring(1)):null,ta="@"==M.charAt(0)?g[W].getAttribute(M.substring(1)):null,"auto"!=K&&"auto"!=ea||"auto"!=M&&"auto"!=ta||B.updateGroupBounds([g[W]],I,!0);for(var ya=f.slice(),pa=f.slice(),X=0;X<ka.length;X++)for(var xa=ka[X],W=0;W<e.length;W++){var T=e[W],za=mxUtils.bind(this,
+da.value),B.model.setStyle(T,da.style),0>mxUtils.indexOf(f,T)&&f.push(T),B.fireEvent(new mxEventObject("cellsInserted","cells",[T]))):B.fireEvent(new mxEventObject("cellsInserted","cells",[da]));T=da;if(!d)for(X=0;X<ka.length;X++)p[ka[X].to][T.getAttribute(ka[X].to)]=T;null!=ra&&"link"!=ra&&(B.setLinkForCell(T,T.getAttribute(ra)),B.setAttributeForCell(T,ra,null));var O=this.editor.graph.getPreferredSizeForCell(T),J=null!=ba?B.model.getCell(C+ma[ba]):null;if(T.vertex){qa=null!=J?0:Q;ja=null!=J?0:V;
+null!=Z&&null!=T.getAttribute(Z)&&(T.geometry.x=qa+parseFloat(T.getAttribute(Z)));null!=M&&null!=T.getAttribute(M)&&(T.geometry.y=ja+parseFloat(T.getAttribute(M)));var ea="@"==K.charAt(0)?T.getAttribute(K.substring(1)):null;T.geometry.width=null!=ea&&"auto"!=ea?parseFloat(T.getAttribute(K.substring(1))):"auto"==K||"auto"==ea?O.width+I:parseFloat(K);var ta="@"==L.charAt(0)?T.getAttribute(L.substring(1)):null;T.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==L||"auto"==ta?O.height+I:parseFloat(L);
+S+=T.geometry.height+U}d?(null==k[ia]&&(k[ia]=[]),k[ia].push(T)):(e.push(T),null!=J?(J.style=B.replacePlaceholders(J,N,t),B.addCell(T,J),g.push(J)):f.push(B.addCell(T)))}for(W=0;W<g.length;W++)ea="@"==K.charAt(0)?g[W].getAttribute(K.substring(1)):null,ta="@"==L.charAt(0)?g[W].getAttribute(L.substring(1)):null,"auto"!=K&&"auto"!=ea||"auto"!=L&&"auto"!=ta||B.updateGroupBounds([g[W]],I,!0);for(var ya=f.slice(),pa=f.slice(),X=0;X<ka.length;X++)for(var xa=ka[X],W=0;W<e.length;W++){var T=e[W],za=mxUtils.bind(this,
function(b,c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=e.split(","),g=0;g<e.length;g++){var f=p[d.to][e[g]];if(null!=f){var k=d.label;null!=d.fromlabel&&(k=(c.getAttribute(d.fromlabel)||"")+(k||""));null!=d.sourcelabel&&(k=B.replacePlaceholders(c,d.sourcelabel,t)+(k||""));null!=d.tolabel&&(k=(k||"")+(f.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(k=(k||"")+B.replacePlaceholders(f,d.targetlabel,t));var l="target"==d.placeholders==!d.invert?f:b,l=null!=d.style?B.replacePlaceholders(l,
d.style,t):B.createCurrentEdgeStyle(),k=B.insertEdge(null,null,k||"",d.invert?f:b,d.invert?b:f,l);if(null!=d.labels)for(l=0;l<d.labels.length;l++){var m=d.labels[l],n=new mxCell(m.label||l,new mxGeometry(null!=m.x?m.x:0,null!=m.y?m.y:0,0,0),"resizable=0;html=1;");n.vertex=!0;n.connectable=!1;n.geometry.relative=!0;null!=m.placeholders&&(n.value=B.replacePlaceholders("target"==m.placeholders==!d.invert?f:b,n.value,t));if(null!=m.dx||null!=m.dy)n.geometry.offset=new mxPoint(null!=m.dx?m.dx:0,null!=
-m.dy?m.dy:0);k.insert(n)}pa.push(k);mxUtils.remove(d.invert?b:f,ya)}}});za(T,T,xa);if(null!=k[T.id])for(na=0;na<k[T.id].length;na++)za(T,k[T.id][na],xa)}if(null!=la)for(W=0;W<e.length;W++)for(T=e[W],na=0;na<la.length;na++)B.setAttributeForCell(T,mxUtils.trim(la[na]),null);if(0<f.length){var Ba=new mxParallelEdgeLayout(B);Ba.spacing=O;Ba.checkOverlap=!0;var Ea=function(){0<Ba.spacing&&Ba.execute(B.getDefaultParent());for(var b=0;b<f.length;b++){var d=B.getCellGeometry(f[b]);d.x=Math.round(B.snap(d.x));
-d.y=Math.round(B.snap(d.y));"auto"==K&&(d.width=Math.round(B.snap(d.width)));"auto"==M&&(d.height=Math.round(B.snap(d.height)))}};if("["==fa.charAt(0)){var Ja=ca;B.view.validate();this.executeLayoutList(JSON.parse(fa),function(){Ea();Ja()});ca=null}else if("circle"==fa){var Aa=new mxCircleLayout(B);Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Ka=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Ka.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){Aa.execute(B.getDefaultParent());
+m.dy?m.dy:0);k.insert(n)}pa.push(k);mxUtils.remove(d.invert?b:f,ya)}}});za(T,T,xa);if(null!=k[T.id])for(na=0;na<k[T.id].length;na++)za(T,k[T.id][na],xa)}if(null!=la)for(W=0;W<e.length;W++)for(T=e[W],na=0;na<la.length;na++)B.setAttributeForCell(T,mxUtils.trim(la[na]),null);if(0<f.length){var Ba=new mxParallelEdgeLayout(B);Ba.spacing=P;Ba.checkOverlap=!0;var Ea=function(){0<Ba.spacing&&Ba.execute(B.getDefaultParent());for(var b=0;b<f.length;b++){var c=B.getCellGeometry(f[b]);c.x=Math.round(B.snap(c.x));
+c.y=Math.round(B.snap(c.y));"auto"==K&&(c.width=Math.round(B.snap(c.width)));"auto"==L&&(c.height=Math.round(B.snap(c.height)))}};if("["==fa.charAt(0)){var Ja=ca;B.view.validate();this.executeLayoutList(JSON.parse(fa),function(){Ea();Ja()});ca=null}else if("circle"==fa){var Aa=new mxCircleLayout(B);Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Ka=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Ka.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){Aa.execute(B.getDefaultParent());
Ea()},!0,ca);ca=null}else if("horizontaltree"==fa||"verticaltree"==fa||"auto"==fa&&pa.length==2*f.length-1&&1==ya.length){B.view.validate();var Ca=new mxCompactTreeLayout(B,"horizontaltree"==fa);Ca.levelDistance=U;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(B.getDefaultParent(),0<ya.length?ya[0]:null)},!0,ca);ca=null}else if("horizontalflow"==fa||"verticalflow"==fa||"auto"==fa&&1==ya.length){B.view.validate();var wa=new mxHierarchicalLayout(B,"horizontalflow"==fa?mxConstants.DIRECTION_WEST:
-mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=U;wa.parallelEdgeSpacing=O;wa.interRankCellSpacing=G;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(B.getDefaultParent(),pa);B.moveCells(pa,Q,V)},!0,ca);ca=null}else if("organic"==fa||"auto"==fa&&pa.length>f.length){B.view.validate();var Y=new mxFastOrganicLayout(B);Y.forceConstant=3*U;Y.disableEdgeStyle=!1;Y.resetEdges=!1;var Fa=Y.isVertexIgnored;Y.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(f,b)};
-this.executeLayout(function(){Y.execute(B.getDefaultParent());Ea()},!0,ca);ca=null}}this.hideDialog()}finally{B.model.endUpdate()}null!=ca&&ca()}}catch(Na){this.handleError(Na)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=
-null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,f,k){b=new LinkDialog(this,b,c,e,!0,f,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=
+mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=U;wa.parallelEdgeSpacing=P;wa.interRankCellSpacing=G;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(B.getDefaultParent(),pa);B.moveCells(pa,Q,V)},!0,ca);ca=null}else if("organic"==fa||"auto"==fa&&pa.length>f.length){B.view.validate();var Y=new mxFastOrganicLayout(B);Y.forceConstant=3*U;Y.disableEdgeStyle=!1;Y.resetEdges=!1;var Fa=Y.isVertexIgnored;Y.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(f,b)};
+this.executeLayout(function(){Y.execute(B.getDefaultParent());Ea()},!0,ca);ca=null}}this.hideDialog()}finally{B.model.endUpdate()}null!=ca&&ca()}}catch(Na){this.handleError(Na)}};EditorUi.prototype.getSearch=function(b){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var d="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(c+=d+e+"="+urlParams[e],d="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(b){b=
+null!=b?b:window.location.pathname;var c=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(d,e)&&(b=0==c?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],c++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,f,k){b=new LinkDialog(this,b,c,e,!0,f,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=
function(b){var c=1;null==this.drive&&"function"!==typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;null!=this.notion&&c++;b&&isLocalStorage&&"1"==urlParams.browser&&c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();
this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);this.actions.get("print").setEnabled(!e);this.menus.get("exportAs").setEnabled(!e);this.menus.get("embed").setEnabled(!e);e="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(e);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(e),
this.menus.get("newLibrary").setEnabled(e));b="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);
@@ -3745,9 +3749,9 @@ return null!=b&&b.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnable
this.actions.get("shadowVisible").setEnabled(f);this.actions.get("connectionArrows").setEnabled(f);this.actions.get("connectionPoints").setEnabled(f);this.actions.get("copyStyle").setEnabled(f&&!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(f&&0<e.cells.length);this.actions.get("editGeometry").setEnabled(0<e.vertices.length);this.actions.get("createShape").setEnabled(f);this.actions.get("createRevision").setEnabled(f);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=
c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(f&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.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!=c&&c.isRenamable()||"1"==
urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(f&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var t=EditorUi.prototype.destroy;EditorUi.prototype.destroy=
-function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);t.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,e,f,k,n,p,t){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(f,k,n)),"image/svg+xml");
-else{var g=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),q=Math.floor(l.height*k/d.view.scale);if(g.length<=MAX_REQUEST_SIZE&&m*q<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var u={globalVars:d.getExportVariables()};t&&(u.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+
-encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(u))+(0<p?"&dpi="+p:"")+"&bg="+(null!=f?f:"none")+"&w="+m+"&h="+q+"&border="+n+"&xml="+encodeURIComponent(g))})}else"png"==e?b.exportImage(k,null==f||"none"==f,!0,!1,!1,n,!0,!1,null,t,p):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",t);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=
+function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);t.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,e,f,k,p,t,v){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(f,k,p)),"image/svg+xml");
+else{var g=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),n=Math.floor(l.height*k/d.view.scale);if(g.length<=MAX_REQUEST_SIZE&&m*n<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var q={globalVars:d.getExportVariables()};v&&(q.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+
+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(q))+(0<t?"&dpi="+t:"")+"&bg="+(null!=f?f:"none")+"&w="+m+"&h="+n+"&border="+p+"&xml="+encodeURIComponent(g))})}else"png"==e?b.exportImage(k,null==f||"none"==f,!0,!1,!1,p,!0,!1,null,v,t):b.exportImage(k,!1,!0,!1,!1,p,!0,!1,"jpeg",v);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=
0;e<this.pages.length;e++){var f=b;this.currentPage!=this.pages[e]&&(f=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),f.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+f.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));
e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var f=document.createElement("div");f.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";f.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var p=mxSettings.getCustomLibraries();for(b=0;b<p.length;b++){var t=p[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]={id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}this.remoteInvoke("getCustomLibraries",
null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<b.length;d++){var e=b[d];k[e.id]&&(c[e.id]=e);var g=this.addCheckbox(f,e.title,k[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,g)}},mxUtils.bind(this,function(b){f.innerHTML="";var c=document.createElement("div");c.style.padding="8px";
@@ -3778,20 +3782,20 @@ var CommentsWindow=function(b,c,e,k,f,p){function t(){for(var b=H.getElementsByT
"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var p=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):f();y=null});p.className="geCommentEditBtn";m.appendChild(p);var n=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);y=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(n.click(),mxEvent.consume(b)):27==b.keyCode&&(p.click(),mxEvent.consume(b)))}));n.focus();n.className="geCommentEditBtn gePrimaryBtn";m.appendChild(n);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function g(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function l(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function q(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function m(b){b.style.border="";b.removeChild(b.busyImg)}function n(c,e,f,k,p){function C(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
-"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});M.appendChild(f);e&&(f.style.display="none")}function x(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=O;b(c);return{pdiv:e,replies:d}}function L(e,f,g,p,t){function u(){l(L);c.addReply(C,function(b){C.id=b;c.replies.push(C);m(L);g&&g()},function(c){v();q(L);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},p,t)}function v(){d(C,L,function(b){u()},!0)}var z=x().pdiv,C=b.newComment(e,b.getCurrentUser());C.pCommentId=c.id;null==c.replies&&(c.replies=[]);var L=n(C,c.replies,z,k+1);f?v():u()}if(p||!c.isResolved){z.style.display="none";var O=document.createElement("div");O.className="geCommentContainer";O.setAttribute("data-commentId",c.id);O.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(O.style.backgroundColor="ghostWhite");
-var D=document.createElement("div");D.className="geCommentHeader";var K=document.createElement("img");K.className="geCommentUserImg";K.src=c.user.pictureUrl||Editor.userImage;D.appendChild(K);K=document.createElement("div");K.className="geCommentHeaderTxt";D.appendChild(K);var U=document.createElement("div");U.className="geCommentUsername";mxUtils.write(U,c.user.displayName||"");K.appendChild(U);U=document.createElement("div");U.className="geCommentDate";U.setAttribute("data-commentId",c.id);g(c,
-U);K.appendChild(U);O.appendChild(D);D=document.createElement("div");D.className="geCommentTxt";mxUtils.write(D,c.content||"");O.appendChild(D);c.isLocked&&(O.style.opacity="0.5");D=document.createElement("div");D.className="geCommentActions";var M=document.createElement("ul");M.className="geCommentActionsList";D.appendChild(M);u||c.isLocked||0!=k&&!v||C(mxResources.get("reply"),function(){L("",!0)},c.isResolved);K=b.getCurrentUser();null==K||K.id!=c.user.id||u||c.isLocked||(C(mxResources.get("edit"),
-function(){function e(){d(c,O,function(){l(O);c.editComment(c.content,function(){m(O)},function(c){q(O);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),C(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(O);c.deleteComment(function(b){if(!0===b){b=O.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=O.querySelectorAll(".geCommentAction");for(b=
-0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);m(O);O.style.opacity="0.5"}else{d=x(c).replies;for(b=0;b<d.length;b++)H.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}z.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){q(O);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||C(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
-b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=x(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);E||(f[k].style.display="none")}t()}c.isResolved?L(mxResources.get("reOpened")+": ",!0,
-d,!1,!0):L(mxResources.get("markedAsResolved"),!1,d,!0)});O.appendChild(D);null!=f?H.insertBefore(O,f.nextSibling):H.appendChild(O);for(f=0;null!=c.replies&&f<c.replies.length;f++)D=c.replies[f],D.isResolved=c.isResolved,n(D,c.replies,null,k+1,p);null!=y&&(y.comment.id==c.id?(p=c.content,c.content=y.comment.content,d(c,O,y.saveCallback,y.deleteOnCancel),c.content=p):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return O}}
+"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});K.appendChild(f);e&&(f.style.display="none")}function x(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=P;b(c);return{pdiv:e,replies:d}}function M(e,f,g,p,t){function u(){l(M);c.addReply(C,function(b){C.id=b;c.replies.push(C);m(M);g&&g()},function(c){v();q(M);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},p,t)}function v(){d(C,M,function(b){u()},!0)}var z=x().pdiv,C=b.newComment(e,b.getCurrentUser());C.pCommentId=c.id;null==c.replies&&(c.replies=[]);var M=n(C,c.replies,z,k+1);f?v():u()}if(p||!c.isResolved){z.style.display="none";var P=document.createElement("div");P.className="geCommentContainer";P.setAttribute("data-commentId",c.id);P.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(P.style.backgroundColor="ghostWhite");
+var D=document.createElement("div");D.className="geCommentHeader";var L=document.createElement("img");L.className="geCommentUserImg";L.src=c.user.pictureUrl||Editor.userImage;D.appendChild(L);L=document.createElement("div");L.className="geCommentHeaderTxt";D.appendChild(L);var U=document.createElement("div");U.className="geCommentUsername";mxUtils.write(U,c.user.displayName||"");L.appendChild(U);U=document.createElement("div");U.className="geCommentDate";U.setAttribute("data-commentId",c.id);g(c,
+U);L.appendChild(U);P.appendChild(D);D=document.createElement("div");D.className="geCommentTxt";mxUtils.write(D,c.content||"");P.appendChild(D);c.isLocked&&(P.style.opacity="0.5");D=document.createElement("div");D.className="geCommentActions";var K=document.createElement("ul");K.className="geCommentActionsList";D.appendChild(K);u||c.isLocked||0!=k&&!v||C(mxResources.get("reply"),function(){M("",!0)},c.isResolved);L=b.getCurrentUser();null==L||L.id!=c.user.id||u||c.isLocked||(C(mxResources.get("edit"),
+function(){function e(){d(c,P,function(){l(P);c.editComment(c.content,function(){m(P)},function(c){q(P);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),C(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(P);c.deleteComment(function(b){if(!0===b){b=P.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=P.querySelectorAll(".geCommentAction");for(b=
+0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);m(P);P.style.opacity="0.5"}else{d=x(c).replies;for(b=0;b<d.length;b++)H.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}z.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){q(P);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||C(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
+b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=x(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);E||(f[k].style.display="none")}t()}c.isResolved?M(mxResources.get("reOpened")+": ",!0,
+d,!1,!0):M(mxResources.get("markedAsResolved"),!1,d,!0)});P.appendChild(D);null!=f?H.insertBefore(P,f.nextSibling):H.appendChild(P);for(f=0;null!=c.replies&&f<c.replies.length;f++)D=c.replies[f],D.isResolved=c.isResolved,n(D,c.replies,null,k+1,p);null!=y&&(y.comment.id==c.id?(p=c.content,c.content=y.comment.content,d(c,P,y.saveCallback,y.deleteOnCancel),c.content=p):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return P}}
var u=!b.canComment(),v=b.canReplyToReplies(),y=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var F=EditorUi.compactUi?"26px":"30px",H=document.createElement("div");H.className="geCommentsList";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";H.style.bottom=parseInt(F)+7+"px";x.appendChild(H);var z=document.createElement("span");z.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(z,mxResources.get("noCommentsFound"));var D=document.createElement("div");D.className="geToolbarContainer geCommentsToolbar";D.style.height=F;D.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";D.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";F=document.createElement("a");F.className="geButton";if(!u){var N=F.cloneNode();N.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';N.setAttribute("title",mxResources.get("create")+
"...");mxEvent.addListener(N,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;J.push(c);m(g)},function(c){q(g);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),g=n(f,J,null,0);e();c.preventDefault();mxEvent.consume(c)});D.appendChild(N)}N=F.cloneNode();N.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';N.setAttribute("title",mxResources.get("showResolved"));
var E=!1;Editor.isDarkMode()&&(N.style.filter="invert(100%)");mxEvent.addListener(N,"click",function(b){this.className=(E=!E)?"geButton geCheckedBtn":"geButton";C();b.preventDefault();mxEvent.consume(b)});D.appendChild(N);b.commentsRefreshNeeded()&&(N=F.cloneNode(),N.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',N.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(N.style.filter="invert(100%)"),mxEvent.addListener(N,"click",function(b){C();
b.preventDefault();mxEvent.consume(b)}),D.appendChild(N));b.commentsSaveNeeded()&&(F=F.cloneNode(),F.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',F.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(F.style.filter="invert(100%)"),mxEvent.addListener(F,"click",function(b){p();b.preventDefault();mxEvent.consume(b)}),D.appendChild(F));x.appendChild(D);var J=[],C=mxUtils.bind(this,function(){this.hasError=!1;if(null!=y)try{y.div=y.div.cloneNode(!0);
-var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(L){b.handleError(L)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
+var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(M){b.handleError(M)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});H.innerHTML="";H.appendChild(z);z.style.display="block";J=b;for(b=0;b<J.length;b++)c(J[b].replies),n(J[b],J,null,0,E);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel))},mxUtils.bind(this,function(b){H.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
": "+b.message:""));this.hasError=!0})):H.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});C();this.refreshComments=C;D=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(g(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=H.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var f=c[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<J.length;e++)b(J[e])}});setInterval(D,6E4);this.refreshCommentsTime=D;this.window=
new mxWindow(mxResources.get("comments"),x,c,e,k,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
@@ -3896,7 +3900,7 @@ v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.is
mxEvent.consume(c))}}catch(G){u.handleError(G)}mxEvent.isConsumed(c)||E.apply(this,arguments)};var J=v.connectVertex;v.connectVertex=function(c,e,f,k,m,p,n){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),z=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,C=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?q(c,e):z==C?l(c):g(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return J.apply(this,arguments)};v.getSubtree=function(d){var e=
[d];!c(d)&&!b(d)||t(d)||v.traverse(d,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var C=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){C.apply(this,arguments);(c(this.state.cell)||b(this.state.cell))&&!t(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(b){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(b);
-this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(b)})))};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){K.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 M=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){M.apply(this,
+this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(b)})))};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){K.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 L=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){L.apply(this,
arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var Z=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){Z.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var e=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var b=e.apply(this,arguments),c=this.graph;return b.concat([this.addEntry("tree container",
function(){var b=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimlane;startSize=20;horizontal=1;containerType=tree;");b.vertex=!0;var c=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');c.vertex=!0;var d=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
d.vertex=!0;var 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;c.insertEdge(e,!0);d.insertEdge(e,!1);b.insert(e);b.insert(c);b.insert(d);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var b=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;startSize=20;horizontal=1;containerType=tree;");
@@ -3915,16 +3919,17 @@ q.geometry.relative=!0;q.edge=!0;e.insertEdge(q,!0);k.insertEdge(q,!1);b.insert(
c.geometry.setTerminalPoint(new mxPoint(0,0),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree sub sections",function(){var b=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");
c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);var d=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");e.geometry.setTerminalPoint(new mxPoint(110,-40),!0);e.geometry.relative=
!0;e.edge=!0;d.insertEdge(e,!1);return sb.createVertexTemplateFromCells([c,e,b,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function b(b,c){var d=b.editor.graph;d.popupMenuHandler.hideMenu();null==b.formatWindow?(b.formatWindow=new k(b,mxResources.get("format"),"1"==urlParams.sketch?Math.max(10,b.diagramContainer.clientWidth-241):Math.max(10,b.diagramContainer.clientWidth-248),"1"==urlParams.winCtrls&&"1"==urlParams.sketch?80:60,240,Math.min(566,d.container.clientHeight-10),function(c){var d=b.createFormat(c);d.init();b.addListener("darkModeChanged",mxUtils.bind(this,function(){d.refresh()}));
-return d}),b.formatWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.formatWindow.window.fit()})),b.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),b.formatWindow.window.setVisible(!0)):b.formatWindow.window.setVisible(null!=c?c:!b.formatWindow.window.isVisible())}function c(b,c){var d=b.editor.graph;d.popupMenuHandler.hideMenu();new mxRectangle;if(null==b.sidebarWindow){var e=Math.min(d.container.clientWidth-10,218);b.sidebarWindow=new k(b,mxResources.get("shapes"),
-10,"1"==urlParams.sketch&&"1"!=urlParams.embedInline?15:56,e-6,Math.min(650,d.container.clientHeight-30),function(c){function d(d,e){var f=b.menus.get(d),k=g.addMenu(e,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));k.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;cusor:pointer;";k.className="geTitle";c.appendChild(k);return k}var e=document.createElement("div");e.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";
-e.className="geTitle";var f=document.createElement("span");f.style.fontSize="18px";f.style.marginRight="5px";f.innerHTML="+";e.appendChild(f);mxUtils.write(e,mxResources.get("moreShapes"));c.appendChild(e);mxEvent.addListener(e,"click",function(){b.actions.get("shapes").funct()});var g=new Menubar(b,c);!Editor.enableCustomLibraries||"1"==urlParams.embed&&"1"!=urlParams.libraries?e.style.bottom="0":null!=b.actions.get("newLibrary")?(e=document.createElement("div"),e.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;",
-e.className="geTitle",f=document.createElement("span"),f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("newLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("newLibrary").funct),e=document.createElement("div"),e.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;",e.className="geTitle",f=document.createElement("span"),
-f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("openLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("openLibrary").funct)):(e=d("newLibrary",mxResources.get("newLibrary")),e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="0",e=d("openLibraryFrom",mxResources.get("openLibraryFrom")),e.style.borderLeft="1px solid lightgray",e.style.boxSizing="border-box",e.style.paddingRight=
-"6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="50%");c.appendChild(b.sidebar.container);c.style.overflow="hidden";return c});b.sidebarWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.sidebarWindow.window.fit()}));b.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);b.sidebarWindow.window.setVisible(!0);b.getLocalData("sidebar",function(c){b.sidebar.showEntries(c,null,!0)});b.restoreLibraries()}else b.sidebarWindow.window.setVisible(null!=c?c:!b.sidebarWindow.window.isVisible())}
-if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=0;try{e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}catch(z){}var k=function(b,c,d,e,f,g,k){var l=document.createElement("div");l.className="geSidebarContainer";l.style.position="absolute";l.style.width="100%";l.style.height="100%";l.style.border="1px solid whiteSmoke";l.style.overflowX="hidden";l.style.overflowY=
-"auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=this.table.firstChild.firstChild.firstChild;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-e.clientWidth-2));
-c=Math.max(0,Math.min(c,d-e.clientHeight-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;
-mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke-width="2" style="stroke-opacity:0.4" stroke="#ffffff"/><path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
+return d}),b.formatWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.formatWindow.window.fit()})),b.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),b.formatWindow.window.setVisible(!0)):b.formatWindow.window.setVisible(null!=c?c:!b.formatWindow.window.isVisible())}function c(b,c){var d=b.editor.graph;d.popupMenuHandler.hideMenu();new mxRectangle;if(null==b.sidebarWindow){var e=Math.min(d.container.clientWidth-10,218),f=Math.min(d.container.clientHeight-40,650);b.sidebarWindow=
+new k(b,mxResources.get("shapes"),"1"==urlParams.sketch&&"1"!=urlParams.embedInline?66:10,"1"==urlParams.sketch&&"1"!=urlParams.embedInline?Math.max(30,(d.container.clientHeight-f)/2):56,e-6,f-6,function(c){function d(d,e){var f=b.menus.get(d),k=g.addMenu(e,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));k.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;cusor:pointer;";k.className="geTitle";
+c.appendChild(k);return k}var e=document.createElement("div");e.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";e.className="geTitle";var f=document.createElement("span");f.style.fontSize="18px";f.style.marginRight="5px";f.innerHTML="+";e.appendChild(f);mxUtils.write(e,mxResources.get("moreShapes"));c.appendChild(e);mxEvent.addListener(e,"click",function(){b.actions.get("shapes").funct()});
+var g=new Menubar(b,c);!Editor.enableCustomLibraries||"1"==urlParams.embed&&"1"!=urlParams.libraries?e.style.bottom="0":null!=b.actions.get("newLibrary")?(e=document.createElement("div"),e.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;",e.className="geTitle",f=document.createElement("span"),f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("newLibrary")),e.appendChild(f),
+c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("newLibrary").funct),e=document.createElement("div"),e.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;",e.className="geTitle",f=document.createElement("span"),f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("openLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,
+"click",b.actions.get("openLibrary").funct)):(e=d("newLibrary",mxResources.get("newLibrary")),e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="0",e=d("openLibraryFrom",mxResources.get("openLibraryFrom")),e.style.borderLeft="1px solid lightgray",e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="50%");c.appendChild(b.sidebar.container);c.style.overflow="hidden";
+return c});b.sidebarWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.sidebarWindow.window.fit()}));b.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);b.sidebarWindow.window.setVisible(!0);b.getLocalData("sidebar",function(c){b.sidebar.showEntries(c,null,!0)});b.restoreLibraries()}else b.sidebarWindow.window.setVisible(null!=c?c:!b.sidebarWindow.window.isVisible())}if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=
+null;else{var e=0;try{e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}catch(z){}var k=function(b,c,d,e,f,g,k){var l=document.createElement("div");l.className="geSidebarContainer";l.style.position="absolute";l.style.width="100%";l.style.height="100%";l.style.border="1px solid whiteSmoke";l.style.overflowX="hidden";l.style.overflowY="auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);
+this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=this.table.firstChild.firstChild.firstChild;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-e.clientWidth-2));c=Math.max(0,Math.min(c,d-e.clientHeight-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&
+(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;
+mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke-width="2" style="stroke-opacity:0.4" stroke="#ffffff"/><path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
"0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight="1"==urlParams.sketch?1:46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert="1"!=urlParams.sketch&&!mxClient.IS_IOS&&!mxClient.IS_ANDROID;
EditorUi.prototype.setDarkMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(b);null==urlParams.dark&&(mxSettings.settings.darkMode=b,mxSettings.save());this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var f=document.createElement("link");f.setAttribute("rel","stylesheet");f.setAttribute("href",STYLE_PATH+"/dark.css");f.setAttribute("charset","UTF-8");f.setAttribute("type",
@@ -3963,67 +3968,67 @@ new ParseDialog(d,"Insert from Text");d.showDialog(b.container,620,420,!0,!1);b.
b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,
c){var e=d.getCurrentFile();d.menus.addSubmenu("extras",b,c,mxResources.get("preferences"));b.addSeparator(c);if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)d.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),c);else if("1"==urlParams.embed||d.mode==App.MODE_ATLAS){"1"!=urlParams.noSaveBtn&&"1"!=urlParams.embedInline&&d.menus.addMenuItems(b,["-","save"],c);if("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit||d.mode==App.MODE_ATLAS)d.menus.addMenuItems(b,
["saveAndExit"],c),null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["revisionHistory"],c);b.addSeparator(c)}else d.mode==App.MODE_ATLAS?d.menus.addMenuItems(b,["save","synchronize","-"],c):"1"!=urlParams.noFileMenu&&(d.menus.addMenuItems(b,["new"],c),d.menus.addSubmenu("openFrom",b,c),isLocalStorage&&this.addSubmenu("openRecent",b,c),"1"!=urlParams.sketch&&(b.addSeparator(c),null!=e&&e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["synchronize"],c)),b.addSeparator(c),d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):"1"!=urlParams.noFileMenu&&d.menus.addSubmenu("importFrom",b,c);"1"!=urlParams.sketch&&(d.menus.addMenuItems(b,["-","outline"],c),d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],c));d.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),
-c);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&navigator.standalone||d.menus.addMenuItems(b,["print"],c);null!=e&&null!=d.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed||d.mode==App.MODE_ATLAS?"1"==urlParams.noExitBtn&&d.mode!=App.MODE_ATLAS||d.menus.addMenuItems(b,["-","exit"],c):"1"!=urlParams.noFileMenu&&
-d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],c):d.menus.addMenuItems(b,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,["publishLink"],c);d.mode!=App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(c),d.menus.addSubmenu("embed",
-b,c))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,e.isEnabled)),d.addInsertMenuItems(b,c,["formatSql","-","fromText","plantUml",
-"mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&"1"!=urlParams.extAuth&&d.mode!=App.MODE_ATLAS&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);d.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),c);"1"!=urlParams.embedInline&&("1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&d.mode!=App.MODE_ATLAS&&d.menus.addMenuItems(b,
-["-","showStartScreen","search","scratchpad"],c),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],c));b.addSeparator(c);d.mode!=App.MODE_ATLAS&&d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.mode!=App.MODE_ATLAS&&d.menus.addMenuItem(b,"plugins",c);d.mode!=App.MODE_ATLAS&&this.addMenuItems(b,["-","fullscreen"],c);(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"],c);"1"==urlParams.sketch&&
-this.addMenuItems(b,["-","toggleSketchMode"],c);b.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(d.menus.addMenuItems(b,["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,
-arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,!1);b.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,c){for(var d=0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,
-mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(e,f){0<c.getSelectionCount()?(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):
-null!=d.parentNode&&d.parentNode.removeChild(d)}))};var F=!1;EditorUi.prototype.initFormatWindow=function(){if(!F){F=!0;this.formatWindow.window.setClosable(!1);var b=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){b.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width="240px",this.div.style.left=Math.max(0,
-parseInt(this.div.style.left)-150)+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(b){mxEvent.getSource(b)==this.formatWindow.window.title&&this.formatWindow.window.toggleMinimized()}))}};var H=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(b,c,d){var e=m.menus.get(b),f=t.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),q);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";
-f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));m.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage=
-"url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition="right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle=
-"none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin="0px");null!=m.statusContainer?p.insertBefore(k,m.statusContainer):p.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",
-function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign=
-"top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);
-return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&(V.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var c=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=c}q=p.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>e||"1"==urlParams.sketch,k=null;b||(k=d("diagram"));c=b?d("diagram",null,Editor.drawLogoImage):null;null!=c&&(k=c);
-g([k,f(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),b?Editor.shapesImage:null),f(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),b?Editor.formatImage:null)],b?60:null);c=d("insert",!0,b?F:null);g([c,f(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),b?Editor.trashImage:
-null)],b?60:null);411<=e&&(g([ia,da],60),520<=e&&g([ta,640<=e?f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",sa,Editor.zoomInImage):null,640<=e?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,Editor.zoomOutImage):null],60))}null!=k&&(mxEvent.disableContextMenu(k),mxEvent.addGestureListeners(k,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&m.appIconClicked(b)}),
-null,null));c=m.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==pa&&(c=t.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.className="geToolbarButton",c.style.backgroundImage="url("+Editor.globeImage+")",c.style.backgroundPosition="center center",c.style.backgroundRepeat="no-repeat",c.style.backgroundSize="24px 24px",c.style.position="absolute",c.style.height="24px",c.style.width="24px",c.style.zIndex="1",
-c.style.right="8px",c.style.cursor="pointer",c.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(c),pa=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=pa&&(pa.parentNode.removeChild(pa),pa=null))}H.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:null!=mxSettings.settings.darkMode?mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);
-var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";l.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(l);"1"==urlParams.sketch&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])c(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&
-(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));var m=this;mxWindow.prototype.fit=function(){if(Editor.inlineFullscreen||null==m.embedViewport)mxUtils.fit(this.div);else{var b=parseInt(this.div.offsetLeft),c=parseInt(this.div.offsetWidth);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,
-m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,
-p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();
-if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";
-p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?
-"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText="position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var y=document.createElement("div");y.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";m.titlebar.appendChild(y);l.appendChild(m.titlebar)}var B=
-m.menus.get("viewZoom"),F="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,S="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,V="1"==urlParams.sketch?document.createElement("div"):null,y=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()});m.addListener("darkModeChanged",y);m.addListener("sketchModeChanged",y);var oa=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)V.style.left="10px",V.style.top="10px",Q.style.left="10px",Q.style.top="60px",S.style.top="10px",S.style.right="12px",S.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),
-m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=
-c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}V.style.left=m.diagramContainer.offsetLeft+"px";V.style.top=m.diagramContainer.offsetTop-V.offsetHeight-4+"px";Q.style.display="";Q.style.left=m.diagramContainer.offsetLeft-Q.offsetWidth-4+"px";Q.style.top=m.diagramContainer.offsetTop+
-"px";S.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-S.offsetWidth+"px";S.style.top=V.style.top;S.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/
-2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=m.bottomResizer.style.visibility;p.style.display="none";V.style.visibility="";S.style.visibility=""}),fa=mxUtils.bind(this,function(){na.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=
-Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";oa()}),y=mxUtils.bind(this,function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);m.addListener("editInlineStart",y);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",y);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width=
-"10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";V.style.visibility="hidden";S.style.visibility="hidden";Q.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});
-if(null!=m.hoverIcons){var ka=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ka.apply(this,arguments)}}if(null!=n.freehand){var ra=n.freehand.createStyle;n.freehand.createStyle=function(b){return ra.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";S.className="geToolbarContainer";V.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var la=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display=
-"inline-block"});mxEvent.addListener(p,"mouseleave",function(){la||(m.statusContainer.style.display="none")});var ja=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&
-"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();ja(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+
-'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",la=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",la=!1)}else m.statusContainer.style.display="inline-block",ja(null),la=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow="none";P.style.padding="6px";P.style.margin=
-"0px";V.appendChild(P);mxEvent.disableContextMenu(P);mxEvent.addGestureListeners(P,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);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 aa=document.createElement("a");aa.style.padding="0px";aa.style.boxShadow="none";aa.className="geMenuItem";aa.style.display="inline-block";aa.style.width="40px";aa.style.height="12px";aa.style.marginBottom="-2px";aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";aa.style.backgroundPosition=
-"top center";aa.style.backgroundRepeat="no-repeat";aa.setAttribute("title","Minimize");var ba=!1,R=mxUtils.bind(this,function(){Q.innerHTML="";if(!ba){var b=function(b,d,e){b=f("",b.funct,null,d,b,e);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";Q.appendChild(b);mxUtils.br(Q);return b};c(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",
+null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["synchronize"],c)),b.addSeparator(c),d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):"1"!=urlParams.noFileMenu&&d.menus.addSubmenu("importFrom",b,c);b.addSeparator(c);"1"!=urlParams.sketch?d.menus.addMenuItems(b,["outline"],c):e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c);d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],
+c);d.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),c);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&navigator.standalone||d.menus.addMenuItems(b,["print"],c);null!=e&&null!=d.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed||d.mode==App.MODE_ATLAS?"1"==urlParams.noExitBtn&&d.mode!=
+App.MODE_ATLAS||d.menus.addMenuItems(b,["-","exit"],c):"1"!=urlParams.noFileMenu&&d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],c):d.menus.addMenuItems(b,
+["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,["publishLink"],c);d.mode!=
+App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(c),d.menus.addSubmenu("embed",b,c))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,
+e.isEnabled)),d.addInsertMenuItems(b,c,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&"1"!=urlParams.extAuth&&d.mode!=App.MODE_ATLAS&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);d.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),c);"1"!=urlParams.embedInline&&("1"!=urlParams.embed&&(isLocalStorage||
+mxClient.IS_CHROMEAPP)&&d.mode!=App.MODE_ATLAS&&d.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],c),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],c));b.addSeparator(c);d.mode!=App.MODE_ATLAS&&d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.mode!=App.MODE_ATLAS&&d.menus.addMenuItem(b,"plugins",c);d.mode!=App.MODE_ATLAS&&this.addMenuItems(b,["-","fullscreen"],c);(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&
+this.addMenuItems(b,["toggleDarkMode"],c);"1"==urlParams.sketch&&this.addMenuItems(b,["-","toggleSketchMode"],c);b.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(d.menus.addMenuItems(b,["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&
+d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,!1);b.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,c){for(var d=
+0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(e,f){0<c.getSelectionCount()?
+(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):null!=d.parentNode&&d.parentNode.removeChild(d)}))};var F=!1;EditorUi.prototype.initFormatWindow=function(){if(!F){F=!0;this.formatWindow.window.setClosable(!1);var b=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){b.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width=
+"240px",this.table.style.width="240px",this.div.style.left=Math.max(0,parseInt(this.div.style.left)-150)+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(b){mxEvent.getSource(b)==this.formatWindow.window.title&&this.formatWindow.window.toggleMinimized()}))}};var H=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(b,c,d){var e=m.menus.get(b),f=t.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),
+q);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));m.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize=
+"24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition="right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign=
+"top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle="none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin="0px");null!=m.statusContainer?p.insertBefore(k,m.statusContainer):p.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,
+function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");
+d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&
+"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&(V.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var c=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=c}q=p.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>e||"1"==urlParams.sketch,k=null;b||(k=d("diagram"));
+c=b?d("diagram",null,Editor.drawLogoImage):null;null!=c&&(k=c);g([k,f(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),b?Editor.shapesImage:null),f(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),b?Editor.formatImage:null)],b?60:null);c=d("insert",!0,b?F:null);g([c,f(mxResources.get("delete"),m.actions.get("delete").funct,
+null,mxResources.get("delete"),m.actions.get("delete"),b?Editor.trashImage:null)],b?60:null);411<=e&&(g([ia,da],60),520<=e&&g([ta,640<=e?f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",sa,Editor.zoomInImage):null,640<=e?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,Editor.zoomOutImage):null],60))}null!=k&&(mxEvent.disableContextMenu(k),mxEvent.addGestureListeners(k,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||
+mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&m.appIconClicked(b)}),null,null));c=m.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==pa&&(c=t.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.className="geToolbarButton",c.style.backgroundImage="url("+Editor.globeImage+")",c.style.backgroundPosition="center center",c.style.backgroundRepeat="no-repeat",c.style.backgroundSize="24px 24px",c.style.position=
+"absolute",c.style.height="24px",c.style.width="24px",c.style.zIndex="1",c.style.right="8px",c.style.cursor="pointer",c.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(c),pa=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=pa&&(pa.parentNode.removeChild(pa),pa=null))}H.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:null!=mxSettings.settings.darkMode?
+mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";l.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(l);"1"==urlParams.sketch&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])c(this,
+!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));var m=this;mxWindow.prototype.fit=function(){if(Editor.inlineFullscreen||null==m.embedViewport)mxUtils.fit(this.div);else{var b=parseInt(this.div.offsetLeft),c=parseInt(this.div.offsetWidth);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-c))+"px";b=parseInt(this.div.offsetTop);
+c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=mxResources.get("untitledLibrary");var p=
+document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=
+m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText=
+"position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText=
+"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText="position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var y=document.createElement("div");y.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";
+m.titlebar.appendChild(y);l.appendChild(m.titlebar)}var B=m.menus.get("viewZoom"),F="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,S="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,V="1"==urlParams.sketch?document.createElement("div"):null,y=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()});m.addListener("darkModeChanged",y);m.addListener("sketchModeChanged",y);var oa=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)V.style.left="10px",V.style.top="10px",Q.style.left="10px",Q.style.top="60px",S.style.top="10px",S.style.right="12px",S.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+
+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=
+b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}V.style.left=m.diagramContainer.offsetLeft+"px";V.style.top=m.diagramContainer.offsetTop-V.offsetHeight-4+"px";Q.style.display="";Q.style.left=m.diagramContainer.offsetLeft-
+Q.offsetWidth-4+"px";Q.style.top=m.diagramContainer.offsetTop+"px";S.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-S.offsetWidth+"px";S.style.top=V.style.top;S.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+
+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=m.bottomResizer.style.visibility;p.style.display="none";V.style.visibility="";S.style.visibility=""}),fa=mxUtils.bind(this,function(){na.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:
+Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";oa()}),y=mxUtils.bind(this,function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);m.addListener("editInlineStart",y);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",y);m.addListener("editInlineStop",
+mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";V.style.visibility="hidden";S.style.visibility="hidden";Q.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==
+b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ka=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ka.apply(this,arguments)}}if(null!=n.freehand){var ra=n.freehand.createStyle;n.freehand.createStyle=function(b){return ra.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";S.className="geToolbarContainer";V.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var la=
+!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){la||(m.statusContainer.style.display="none")});var ja=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());
+if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();ja(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML=
+'<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",la=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",la=!1)}else m.statusContainer.style.display="inline-block",ja(null),la=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));O=d("diagram",null,Editor.menuImage);O.style.boxShadow=
+"none";O.style.padding="6px";O.style.margin="0px";V.appendChild(O);mxEvent.disableContextMenu(O);mxEvent.addGestureListeners(O,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);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 aa=document.createElement("a");aa.style.padding="0px";aa.style.boxShadow="none";aa.className="geMenuItem";aa.style.display="inline-block";aa.style.width="40px";aa.style.height="12px";aa.style.marginBottom="-2px";aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+
+")";aa.style.backgroundPosition="top center";aa.style.backgroundRepeat="no-repeat";aa.setAttribute("title","Minimize");var ba=!1,R=mxUtils.bind(this,function(){Q.innerHTML="";if(!ba){var b=function(b,d,e){b=f("",b.funct,null,d,b,e);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";Q.appendChild(b);mxUtils.br(Q);return b};c(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",
60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");c(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;shadow=1;size=20;pointerEvents=1;",140,160,"",mxResources.get("note"),!0,!1,null,!0),mxResources.get("note"));c(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",
160,80,"",mxResources.get("rectangle"),!0,!1,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");c(m.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!1,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;");b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);
b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;c(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!0,null,!0,!1),mxResources.get("line"));b=b.clone();b.style="edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=n.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=c(m.sidebar.createEdgeTemplateFromCells([b],
-b.geometry.width,40,mxResources.get("arrow"),!0,null,!0,!1),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(m.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",F);P=d("table",null,Editor.calendarImage);P.style.boxShadow="none";P.style.opacity="0.7";P.style.padding="6px";
-P.style.margin="0px";P.style.width="37px";c(P,null,"pointer");b(m.actions.get("insertTemplate"),mxResources.get("template"),Editor.addImage)}"1"!=urlParams.embedInline&&Q.appendChild(aa)});mxEvent.addListener(aa,"click",mxUtils.bind(this,function(){ba?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",aa.style.width="40px",aa.style.height=
+b.geometry.width,40,mxResources.get("arrow"),!0,null,!0,!1),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(m.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",F);O=d("table",null,Editor.calendarImage);O.style.boxShadow="none";O.style.opacity="0.7";O.style.padding="6px";
+O.style.margin="0px";O.style.width="37px";c(O,null,"pointer");b(m.actions.get("insertTemplate"),mxResources.get("template"),Editor.addImage)}"1"!=urlParams.embedInline&&Q.appendChild(aa)});mxEvent.addListener(aa,"click",mxUtils.bind(this,function(){ba?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",aa.style.width="40px",aa.style.height=
"12px",aa.setAttribute("title","Minimize"),ba=!1,R()):(Q.innerHTML="",Q.appendChild(aa),mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",Q.style.padding="0px",Q.style.height="24px",aa.style.height="24px",aa.style.backgroundImage="url("+Editor.plusImage+")",aa.setAttribute("title",mxResources.get("insert")),aa.style.width="24px",ba=!0)}));R();m.addListener("darkModeChanged",R);m.addListener("sketchModeChanged",R)}else m.editor.addListener("statusChanged",
mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=B){var y=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)||mxEvent.isShiftDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},sa=m.actions.get("zoomIn"),W=m.actions.get("zoomOut"),X=m.actions.get("resetView"),ma=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var qa=m.actions.get("undo"),T=m.actions.get("redo"),ia=f("",qa.funct,null,mxResources.get("undo")+" ("+qa.shortcut+
")",qa,Editor.undoImage),da=f("",T.funct,null,mxResources.get("redo")+" ("+T.shortcut+")",T,Editor.redoImage),na=f("",ma.funct,null,mxResources.get("fullscreen"),ma,Editor.fullscreenImage);if(null!=S){B=function(){ea.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};na.parentNode.removeChild(na);var ha=m.actions.get("delete"),ua=f("",ha.funct,null,mxResources.get("delete"),ha,Editor.trashImage);ua.style.opacity="0.1";V.appendChild(ua);
ha.addListener("stateChanged",function(){ua.style.opacity=ha.enabled?"":"0.1"});X=function(){ia.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";da.style.display=ia.style.display;ia.style.opacity=qa.enabled?"":"0.1";da.style.opacity=T.enabled?"":"0.1"};V.appendChild(ia);V.appendChild(da);qa.addListener("stateChanged",X);T.addListener("stateChanged",X);X();null!=urlParams.layers&&(X=m.actions.get("layers"),X=f("",X.funct,null,mxResources.get("layers"),X,Editor.layersImage),
-X.style.opacity="0.4",S.appendChild(X));null!=urlParams.tags&&(X=m.actions.get("tags"),X=f("",X.funct,null,mxResources.get("tags"),X,Editor.tagsImage),X.style.opacity="0.4",S.appendChild(X));X=m.actions.get("outline");X=f("",X.funct,null,mxResources.get("outline"),X,Editor.outlineImage);S.appendChild(X);X=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);S.appendChild(X);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",
-mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";S.appendChild(P);mxEvent.addListener(P,"click",y);y=f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",sa,
+X.style.opacity="0.4",S.appendChild(X));null!=urlParams.tags&&(X=m.actions.get("tags"),X=f("",X.funct,null,mxResources.get("tags"),X,Editor.tagsImage),X.style.opacity="0.4",S.appendChild(X));X=m.actions.get("outline");X=f("",X.funct,null,mxResources.get("outline"),X,Editor.outlineImage);S.appendChild(X);X=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);S.appendChild(X);var O=document.createElement("div");O.innerHTML="100%";O.setAttribute("title",
+mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");O.style.display="inline-block";O.style.cursor="pointer";O.style.textAlign="center";O.style.whiteSpace="nowrap";O.style.paddingRight="10px";O.style.textDecoration="none";O.style.verticalAlign="top";O.style.padding="6px 0";O.style.fontSize="14px";O.style.width="40px";O.style.opacity="0.4";S.appendChild(O);mxEvent.addListener(O,"click",y);y=f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",sa,
Editor.zoomInImage);S.appendChild(y);"1"==urlParams.embedInline&&(S.appendChild(na),y=m.actions.get("exit"),S.appendChild(f("",y.funct,null,mxResources.get("exit"),y,Editor.closeImage)));var ea=this.createPageMenuTab(!1);ea.style.display="none";ea.style.position="";ea.style.marginLeft="";ea.style.top="";ea.style.left="";ea.style.height="100%";ea.style.lineHeight="";ea.style.borderStyle="none";ea.style.padding="3px 0";ea.style.margin="0px";ea.style.background="";ea.style.border="";ea.style.boxShadow=
"none";ea.style.verticalAlign="top";ea.firstChild.style.height="100%";ea.firstChild.style.opacity="0.6";ea.firstChild.style.margin="0px";S.appendChild(ea);m.addListener("fileDescriptorChanged",B);m.addListener("pagesVisibleChanged",B);B();m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:14px;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;";
V.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;";S.style.cssText="position:absolute;right:14px;bottom:14px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";x.appendChild(V);x.appendChild(S);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;";
-x.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ta=f("",y,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",X,Editor.zoomFitImage);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";P=t.addMenu("100%",B.funct);P.setAttribute("title",mxResources.get("zoom")+
-" (Alt+Mousewheel)");P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.textDecoration="none";P.style.overflow="hidden";P.style.visibility="hidden";P.style.textAlign="center";P.style.cursor="pointer";P.style.height=parseInt(m.tabContainerHeight)-1+"px";P.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";P.style.position="absolute";P.style.display="block";P.style.fontSize="12px";P.style.width="59px";P.style.right="0px";P.style.bottom="0px";P.style.backgroundImage=
-"url("+mxWindow.prototype.minimizeImage+")";P.style.backgroundPosition="right 6px center";P.style.backgroundRepeat="no-repeat";x.appendChild(P)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=Math.round(100*m.editor.graph.view.scale)+"%"});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);m.editor.addListener("resetGraphView",c);m.editor.addListener("pageSelected",c)})(P);var ya=m.setGraphEnabled;m.setGraphEnabled=function(){ya.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=
+x.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ta=f("",y,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",X,Editor.zoomFitImage);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";O=t.addMenu("100%",B.funct);O.setAttribute("title",mxResources.get("zoom")+
+" (Alt+Mousewheel)");O.style.whiteSpace="nowrap";O.style.paddingRight="10px";O.style.textDecoration="none";O.style.textDecoration="none";O.style.overflow="hidden";O.style.visibility="hidden";O.style.textAlign="center";O.style.cursor="pointer";O.style.height=parseInt(m.tabContainerHeight)-1+"px";O.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";O.style.position="absolute";O.style.display="block";O.style.fontSize="12px";O.style.width="59px";O.style.right="0px";O.style.bottom="0px";O.style.backgroundImage=
+"url("+mxWindow.prototype.minimizeImage+")";O.style.backgroundPosition="right 6px center";O.style.backgroundRepeat="no-repeat";x.appendChild(O)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=Math.round(100*m.editor.graph.view.scale)+"%"});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);m.editor.addListener("resetGraphView",c);m.editor.addListener("pageSelected",c)})(O);var ya=m.setGraphEnabled;m.setGraphEnabled=function(){ya.apply(this,arguments);null!=this.tabContainer&&(O.style.visibility=
this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==S?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==S&&x.appendChild(m.tabContainer);var pa=null;k();mxEvent.addListener(window,"resize",function(){k();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()});if("1"==urlParams.embedInline){document.body.style.cursor="text";Q.style.transform="";mxEvent.addGestureListeners(m.diagramContainer.parentNode,function(b){mxEvent.getSource(b)==m.diagramContainer.parentNode&&(m.embedExitPoint=new mxPoint(mxEvent.getClientX(b),
mxEvent.getClientY(b)),m.sendEmbeddedSvgExport())});l=document.createElement("div");l.style.position="absolute";l.style.width="10px";l.style.height="10px";l.style.borderRadius="5px";l.style.border="1px solid gray";l.style.background="#ffffff";l.style.cursor="row-resize";m.diagramContainer.parentNode.appendChild(l);m.bottomResizer=l;var xa=null,za=null,Ba=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);za=mxEvent.getClientY(b);n.popupMenuHandler.hideMenu();
diff --git a/src/main/webapp/js/viewer.min.js b/src/main/webapp/js/viewer.min.js
index 33788d0e..34e72c7a 100644
--- a/src/main/webapp/js/viewer.min.js
+++ b/src/main/webapp/js/viewer.min.js
@@ -202,7 +202,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:"16.0.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/"),
+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:"16.0.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==document.createElementNS("http://www.w3.org/2000/svg","foreignObject").toString()||0<=navigator.userAgent.indexOf("Opera/"),
@@ -305,16 +305,17 @@ STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT
STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",
STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",
STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",
-STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",
-STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",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",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};
+STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_SWIMLANE_HEAD:"swimlaneHead",STYLE_SWIMLANE_BODY:"swimlaneBody",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",
+STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",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",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};
@@ -638,10 +639,9 @@ l/2-k,d.y-l-k/2);a.close();a.moveTo(d.x-k,d.y-l);a.lineTo(d.x-2*k-.5*l,d.y+.5*k-
mxActor.prototype.redrawPath=function(a,b,c,d,e){b=d/3;a.moveTo(0,e);a.curveTo(0,3*e/5,0,2*e/5,d/2,2*e/5);a.curveTo(d/2-b,2*e/5,d/2-b,0,d/2,0);a.curveTo(d/2+b,0,d/2+b,2*e/5,d/2,2*e/5);a.curveTo(d,2*e/5,d,3*e/5,d,e);a.close()};function mxCloud(a,b,c,d){mxActor.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxCloud,mxActor);
mxCloud.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(.25*d,.25*e);a.curveTo(.05*d,.25*e,0,.5*e,.16*d,.55*e);a.curveTo(0,.66*e,.18*d,.9*e,.31*d,.8*e);a.curveTo(.4*d,e,.7*d,e,.8*d,.8*e);a.curveTo(d,.8*e,d,.6*e,.875*d,.5*e);a.curveTo(d,.3*e,.8*d,.1*e,.625*d,.2*e);a.curveTo(.5*d,.05*e,.3*d,.05*e,.25*d,.25*e);a.close()};function mxRectangleShape(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxRectangleShape,mxShape);
mxRectangleShape.prototype.isHtmlAllowed=function(){var a=!0;null!=this.style&&(a="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));return!this.isRounded&&!this.glass&&0==this.rotation&&(a||null!=this.fill&&this.fill!=mxConstants.NONE)};
-mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(this.isRounded){var f;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f));a.roundrect(b,c,d,e,f,f)}else a.rect(b,c,d,e);a.fillAndStroke()};
-mxRectangleShape.prototype.isRoundable=function(a,b,c,d,e){return!0};mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){this.glass&&!this.outline&&null!=this.fill&&this.fill!=mxConstants.NONE&&this.paintGlassEffect(a,b,c,d,e,this.getArcSize(d+this.strokewidth,e+this.strokewidth))};function mxEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxEllipse,mxShape);
-mxEllipse.prototype.paintVertexShape=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};function mxDoubleEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxDoubleEllipse,mxShape);mxDoubleEllipse.prototype.paintBackground=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};
-mxDoubleEllipse.prototype.paintForeground=function(a,b,c,d,e){if(!this.outline){var f=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(d/5,e/5)));d-=2*f;e-=2*f;0<d&&0<e&&a.ellipse(b+f,c+f,d,e);a.stroke()}};
+mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(this.isRounded){var f;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f));a.roundrect(b,c,d,e,f,f)}else a.rect(b,c,d,e);a.fillAndStroke()};mxRectangleShape.prototype.isRoundable=function(){return!0};
+mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){this.glass&&!this.outline&&null!=this.fill&&this.fill!=mxConstants.NONE&&this.paintGlassEffect(a,b,c,d,e,this.getArcSize(d+this.strokewidth,e+this.strokewidth))};function mxEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxEllipse,mxShape);mxEllipse.prototype.paintVertexShape=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};
+function mxDoubleEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxDoubleEllipse,mxShape);mxDoubleEllipse.prototype.paintBackground=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};mxDoubleEllipse.prototype.paintForeground=function(a,b,c,d,e){if(!this.outline){var f=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(d/5,e/5)));d-=2*f;e-=2*f;0<d&&0<e&&a.ellipse(b+f,c+f,d,e);a.stroke()}};
mxDoubleEllipse.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(a.width/5/this.scale,a.height/5/this.scale)))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)};function mxRhombus(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxRhombus,mxShape);mxRhombus.prototype.isRoundable=function(){return!0};
mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){var f=d/2,g=e/2,k=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+g),new mxPoint(b+f,c+e),new mxPoint(b,c+g)],this.isRounded,k,!0);a.fillAndStroke()};function mxPolyline(a,b,c){mxShape.call(this);this.points=a;this.stroke=b;this.strokewidth=null!=c?c:1}mxUtils.extend(mxPolyline,mxShape);mxPolyline.prototype.getRotation=function(){return 0};
mxPolyline.prototype.getShapeRotation=function(){return 0};mxPolyline.prototype.isPaintBoundsInverted=function(){return!1};mxPolyline.prototype.paintEdgeShape=function(a,b){var c=a.pointerEventsValue;a.pointerEventsValue="stroke";null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(a,b,this.isRounded):this.paintCurvedLine(a,b);a.pointerEventsValue=c};
@@ -708,7 +708,7 @@ function mxTriangle(){mxActor.call(this)}mxUtils.extend(mxTriangle,mxActor);mxTr
mxHexagon.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(.25*d,0),new mxPoint(.75*d,0),new mxPoint(d,.5*e),new mxPoint(.75*d,e),new mxPoint(.25*d,e),new mxPoint(0,.5*e)],this.isRounded,b,!0)};function mxLine(a,b,c,d){mxShape.call(this);this.bounds=a;this.stroke=b;this.strokewidth=null!=c?c:1;this.vertical=null!=d?d:this.vertical}mxUtils.extend(mxLine,mxShape);mxLine.prototype.vertical=!1;
mxLine.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();if(this.vertical){var f=b+d/2;a.moveTo(f,c);a.lineTo(f,c+e)}else f=c+e/2,a.moveTo(b,f),a.lineTo(b+d,f);a.stroke()};function mxImageShape(a,b,c,d,e){mxShape.call(this);this.bounds=a;this.image=b;this.fill=c;this.stroke=d;this.strokewidth=null!=e?e:1;this.shadow=!1}mxUtils.extend(mxImageShape,mxRectangleShape);mxImageShape.prototype.preserveImageAspect=!0;mxImageShape.prototype.getSvgScreenOffset=function(){return 0};
mxImageShape.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);this.gradient=this.stroke=this.fill=null;null!=this.style&&(this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.imageBackground=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),this.imageBorder=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||
-1==mxUtils.getValue(this.style,"imageFlipV",0))};mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect};mxImageShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxImageShape.prototype.isRoundable=function(a,b,c,d,e){return!1};mxImageShape.prototype.getImageDataUri=function(){return this.image};mxImageShape.prototype.configurePointerEvents=function(a){};
+1==mxUtils.getValue(this.style,"imageFlipV",0))};mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect};mxImageShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxImageShape.prototype.isRoundable=function(){return!1};mxImageShape.prototype.getImageDataUri=function(){return this.image};mxImageShape.prototype.configurePointerEvents=function(a){};
mxImageShape.prototype.paintVertexShape=function(a,b,c,d,e){null!=this.image?(null!=this.imageBackground&&(a.setFillColor(this.imageBackground),a.setStrokeColor(this.imageBorder),a.rect(b,c,d,e),a.fillAndStroke()),a.image(b,c,d,e,this.getImageDataUri(),this.preserveImageAspect,!1,!1),null!=this.imageBorder&&(a.setShadow(!1),a.setStrokeColor(this.imageBorder),a.rect(b,c,d,e),a.stroke())):mxRectangleShape.prototype.paintBackground.apply(this,arguments)};
mxImageShape.prototype.redrawHtmlShape=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px";this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px";this.node.innerHTML="";if(null!=this.image){var a=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,""),b=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,"");this.node.style.backgroundColor=
a;this.node.style.borderColor=b;a=document.createElement("img");a.setAttribute("border","0");a.style.position="absolute";a.src=this.image;b=100>this.opacity?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=b;this.flipH&&this.flipV?b+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?b+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(b+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)");a.style.filter!=b&&(a.style.filter=b);"image"==
@@ -728,18 +728,20 @@ mxConnector.prototype.updateBoundingBox=function(){this.useSvgBoundingBox=null!=
mxConnector.prototype.createMarker=function(a,b,c){var d=null,e=b.length,f=mxUtils.getValue(this.style,c?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW),g=c?b[1]:b[e-2];b=c?b[0]:b[e-1];if(null!=f&&null!=g&&null!=b)var d=b.x-g.x,e=b.y-g.y,k=Math.sqrt(d*d+e*e),g=d/k,d=e/k,e=mxUtils.getNumber(this.style,c?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),d=mxMarker.createMarker(a,this,f,b,g,d,e,c,this.strokewidth,0!=this.style[c?mxConstants.STYLE_STARTFILL:
mxConstants.STYLE_ENDFILL]);return d};
mxConnector.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var b=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1);mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b=Math.max(b,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+
-1);a.grow(b*this.scale)};function mxSwimlane(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxSwimlane,mxShape);mxSwimlane.prototype.imageSize=16;mxSwimlane.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.laneFill=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE))};mxSwimlane.prototype.isRoundable=function(a,b,c,d,e){return!0};
+1);a.grow(b*this.scale)};function mxSwimlane(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxSwimlane,mxShape);mxSwimlane.prototype.imageSize=16;mxSwimlane.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.laneFill=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE))};mxSwimlane.prototype.isRoundable=function(){return!0};
mxSwimlane.prototype.getTitleSize=function(){return Math.max(0,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE))};
-mxSwimlane.prototype.getLabelBounds=function(a){var b=this.getTitleSize();a=new mxRectangle(a.x,a.y,a.width,a.height);var c=this.isHorizontal(),d=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),e=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),f=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH,c=c==!f,d=!c&&d!=(this.direction==mxConstants.DIRECTION_SOUTH||this.direction==mxConstants.DIRECTION_WEST),e=c&&e!=(this.direction==mxConstants.DIRECTION_SOUTH||
-this.direction==mxConstants.DIRECTION_WEST);if(f){b=Math.min(a.width,b*this.scale);if(d||e)a.x+=a.width-b;a.width=b}else{b=Math.min(a.height,b*this.scale);if(d||e)a.y+=a.height-b;a.height=b}return a};mxSwimlane.prototype.getGradientBounds=function(a,b,c,d,e){a=this.getTitleSize();if(this.isHorizontal())return a=Math.min(a,e),new mxRectangle(b,c,d,a);a=Math.min(a,d);return new mxRectangle(b,c,a,e)};
+mxSwimlane.prototype.getLabelBounds=function(a){var b=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),c=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0);a=new mxRectangle(a.x,a.y,a.width,a.height);var d=this.isHorizontal(),e=this.getTitleSize(),f=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH,d=d==!f,b=!d&&b!=(this.direction==mxConstants.DIRECTION_SOUTH||this.direction==mxConstants.DIRECTION_WEST),c=d&&c!=(this.direction==mxConstants.DIRECTION_SOUTH||
+this.direction==mxConstants.DIRECTION_WEST);if(f){e=Math.min(a.width,e*this.scale);if(b||c)a.x+=a.width-e;a.width=e}else{e=Math.min(a.height,e*this.scale);if(b||c)a.y+=a.height-e;a.height=e}return a};mxSwimlane.prototype.getGradientBounds=function(a,b,c,d,e){a=this.getTitleSize();return this.isHorizontal()?new mxRectangle(b,c,d,Math.min(a,e)):new mxRectangle(b,c,Math.min(a,d),e)};
mxSwimlane.prototype.getSwimlaneArcSize=function(a,b,c){if("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0))return Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2));a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return c*a*3};mxSwimlane.prototype.isHorizontal=function(){return 1==mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)};
-mxSwimlane.prototype.paintVertexShape=function(a,b,c,d,e){var f=this.getTitleSize(),g=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),k=0,f=this.isHorizontal()?Math.min(f,e):Math.min(f,d);a.translate(b,c);this.isRounded?(k=this.getSwimlaneArcSize(d,e,f),k=Math.min((this.isHorizontal()?e:d)-f,Math.min(f,k)),this.paintRoundedSwimlane(a,b,c,d,e,f,k,this.laneFill,g)):this.paintSwimlane(a,b,c,d,e,f,this.laneFill,g);g=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);
-this.paintSeparator(a,b,c,d,e,f,g);null!=this.image&&(e=this.getImageBounds(b,c,d,e),a.image(e.x-b,e.y-c,e.width,e.height,this.image,!1,!1,!1));this.glass&&(a.setShadow(!1),this.paintGlassEffect(a,0,0,d,f,k))};
-mxSwimlane.prototype.paintSwimlane=function(a,b,c,d,e,f,g,k){a.begin();var l=!0;null!=this.style&&(l="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));this.isHorizontal()?(a.moveTo(0,f),a.lineTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.fillAndStroke(),f<e&&(g!=mxConstants.NONE&&l||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(0,f),a.lineTo(0,e),a.lineTo(d,e),a.lineTo(d,f),g==mxConstants.NONE?a.stroke():a.fillAndStroke())):(a.moveTo(f,0),a.lineTo(0,
-0),a.lineTo(0,e),a.lineTo(f,e),a.fillAndStroke(),f<d&&(g!=mxConstants.NONE&&l||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(f,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(f,e),g==mxConstants.NONE?a.stroke():a.fillAndStroke()));k&&this.paintDivider(a,b,c,d,e,f,g==mxConstants.NONE)};
-mxSwimlane.prototype.paintRoundedSwimlane=function(a,b,c,d,e,f,g,k,l){a.begin();var m=!0;null!=this.style&&(m="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,g),a.quadTo(d,0,d-Math.min(d/2,g),0),a.lineTo(Math.min(d/2,g),0),a.quadTo(0,0,0,g),a.lineTo(0,f),a.fillAndStroke(),f<e&&(k!=mxConstants.NONE&&m||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(0,f),a.lineTo(0,e-g),a.quadTo(0,e,Math.min(d/2,g),
-e),a.lineTo(d-Math.min(d/2,g),e),a.quadTo(d,e,d,e-g),a.lineTo(d,f),k==mxConstants.NONE?a.stroke():a.fillAndStroke())):(a.moveTo(f,0),a.lineTo(g,0),a.quadTo(0,0,0,Math.min(e/2,g)),a.lineTo(0,e-Math.min(e/2,g)),a.quadTo(0,e,g,e),a.lineTo(f,e),a.fillAndStroke(),f<d&&(k!=mxConstants.NONE&&m||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(f,e),a.lineTo(d-g,e),a.quadTo(d,e,d,e-Math.min(e/2,g)),a.lineTo(d,Math.min(e/2,g)),a.quadTo(d,0,d-g,0),a.lineTo(f,0),k==mxConstants.NONE?
-a.stroke():a.fillAndStroke()));l&&this.paintDivider(a,b,c,d,e,f,k==mxConstants.NONE)};mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.begin();this.isHorizontal()?(a.moveTo(0,f),a.lineTo(d,f)):(a.moveTo(f,0),a.lineTo(f,e));a.stroke()};mxSwimlane.prototype.paintSeparator=function(a,b,c,d,e,f,g){g!=mxConstants.NONE&&(a.setStrokeColor(g),a.setDashed(!0),a.begin(),this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,e)):(a.moveTo(f,0),a.lineTo(d,0)),a.stroke(),a.setDashed(!1))};
+mxSwimlane.prototype.paintVertexShape=function(a,b,c,d,e){if(!this.outline){var f=this.getTitleSize(),g=0,f=this.isHorizontal()?Math.min(f,e):Math.min(f,d);a.translate(b,c);this.isRounded?(g=this.getSwimlaneArcSize(d,e,f),g=Math.min((this.isHorizontal()?e:d)-f,Math.min(f,g)),this.paintRoundedSwimlane(a,b,c,d,e,f,g)):this.paintSwimlane(a,b,c,d,e,f);var k=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);this.paintSeparator(a,b,c,d,e,f,k);null!=this.image&&(e=this.getImageBounds(b,
+c,d,e),a.image(e.x-b,e.y-c,e.width,e.height,this.image,!1,!1,!1));this.glass&&(a.setShadow(!1),this.paintGlassEffect(a,0,0,d,f,g))}};mxSwimlane.prototype.configurePointerEvents=function(a){var b=!0,c=!0,d=!0;null!=this.style&&(b="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),c=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),d=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));(b||c||d)&&mxShape.prototype.configurePointerEvents.apply(this,arguments)};
+mxSwimlane.prototype.paintSwimlane=function(a,b,c,d,e,f){var g=this.laneFill,k=!0,l=!0,m=!0,n=!0;null!=this.style&&(k="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),l=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),m=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),n=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));this.isHorizontal()?(a.begin(),a.moveTo(0,f),a.lineTo(0,0),a.lineTo(d,0),a.lineTo(d,f),m?a.fillAndStroke():
+a.fill(),f<e&&(g!=mxConstants.NONE&&k||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(0,f),a.lineTo(0,e),a.lineTo(d,e),a.lineTo(d,f),n?g==mxConstants.NONE?a.stroke():n&&a.fillAndStroke():g!=mxConstants.NONE&&a.fill())):(a.begin(),a.moveTo(f,0),a.lineTo(0,0),a.lineTo(0,e),a.lineTo(f,e),m?a.fillAndStroke():a.fill(),f<d&&(g!=mxConstants.NONE&&k||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(f,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(f,e),
+n?g==mxConstants.NONE?a.stroke():n&&a.fillAndStroke():g!=mxConstants.NONE&&a.fill()));l&&this.paintDivider(a,b,c,d,e,f,g==mxConstants.NONE)};
+mxSwimlane.prototype.paintRoundedSwimlane=function(a,b,c,d,e,f,g){var k=this.laneFill,l=!0,m=!0,n=!0,p=!0;null!=this.style&&(l="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),m=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),n=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),p=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));this.isHorizontal()?(a.begin(),a.moveTo(d,f),a.lineTo(d,g),a.quadTo(d,0,d-Math.min(d/2,g),0),a.lineTo(Math.min(d/
+2,g),0),a.quadTo(0,0,0,g),a.lineTo(0,f),n?a.fillAndStroke():a.fill(),f<e&&(k!=mxConstants.NONE&&l||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(0,f),a.lineTo(0,e-g),a.quadTo(0,e,Math.min(d/2,g),e),a.lineTo(d-Math.min(d/2,g),e),a.quadTo(d,e,d,e-g),a.lineTo(d,f),p?k==mxConstants.NONE?a.stroke():p&&a.fillAndStroke():k!=mxConstants.NONE&&a.fill())):(a.begin(),a.moveTo(f,0),a.lineTo(g,0),a.quadTo(0,0,0,Math.min(e/2,g)),a.lineTo(0,e-Math.min(e/2,g)),a.quadTo(0,e,g,e),a.lineTo(f,
+e),n?a.fillAndStroke():a.fill(),f<d&&(k!=mxConstants.NONE&&l||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(f,e),a.lineTo(d-g,e),a.quadTo(d,e,d,e-Math.min(e/2,g)),a.lineTo(d,Math.min(e/2,g)),a.quadTo(d,0,d-g,0),a.lineTo(f,0),p?k==mxConstants.NONE?a.stroke():p&&a.fillAndStroke():k!=mxConstants.NONE&&a.fill()));m&&this.paintDivider(a,b,c,d,e,f,k==mxConstants.NONE)};
+mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){0!=f&&(g||a.setShadow(!1),a.begin(),this.isHorizontal()?(a.moveTo(0,f),a.lineTo(d,f)):(a.moveTo(f,0),a.lineTo(f,e)),a.stroke())};mxSwimlane.prototype.paintSeparator=function(a,b,c,d,e,f,g){g!=mxConstants.NONE&&(a.setStrokeColor(g),a.setDashed(!0),a.begin(),this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,e)):(a.moveTo(f,0),a.lineTo(d,0)),a.stroke(),a.setDashed(!1))};
mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.resizeCell=function(a,b){};mxGraphLayout.prototype.execute=function(a){};
mxGraphLayout.prototype.getGraph=function(){return this.graph};mxGraphLayout.prototype.getConstraint=function(a,b,c,d){return this.graph.getCurrentCellStyle(b)[a]};
mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}};
@@ -2140,8 +2142,8 @@ k.addListener(mxEvent.EDITING_STARTED,this.selectionStateListener);k.addListener
t="shape edgeStyle curved rounded elbow jumpStyle jumpSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification sketchStyle".split(" "),d="curved sourcePerimeterSpacing targetPerimeterSpacing startArrow startFill startSize endArrow endFill endSize".split(" ");this.setDefaultStyle=function(b){try{var d=k.getCellStyle(b,!1),g=[],c=[],e;for(e in d)g.push(d[e]),c.push(e);k.getModel().isEdge(b)?k.currentEdgeStyle={}:k.currentVertexStyle=
{};this.fireEvent(new mxEventObject("styleChanged","keys",c,"values",g,"cells",[b]))}catch(B){this.handleError(B)}};this.clearDefaultStyle=function(){k.currentEdgeStyle=mxUtils.clone(k.defaultEdgeStyle);k.currentVertexStyle=mxUtils.clone(k.defaultVertexStyle);this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]))};var g=["fontFamily","fontSource","fontSize","fontColor"];for(c=0;c<g.length;c++)0>mxUtils.indexOf(p,g[c])&&p.push(g[c]);var l="edgeStyle startArrow startFill startSize endArrow endFill endSize".split(" "),
q=[["startArrow","startFill","endArrow","endFill"],["startSize","endSize"],["sourcePerimeterSpacing","targetPerimeterSpacing"],["strokeColor","strokeWidth"],["fillColor","gradientColor","gradientDirection"],["opacity"],["html"]];for(c=0;c<q.length;c++)for(e=0;e<q[c].length;e++)p.push(q[c][e]);for(c=0;c<t.length;c++)0>mxUtils.indexOf(p,t[c])&&p.push(t[c]);var m=function(b,g,c,e,l,f,m){e=null!=e?e:k.currentVertexStyle;l=null!=l?l:k.currentEdgeStyle;f=null!=f?f:!0;c=null!=c?c:k.getModel();if(m){m=[];
-for(var G=0;G<b.length;G++)m=m.concat(c.getDescendants(b[G]));b=m}c.beginUpdate();try{for(G=0;G<b.length;G++){var n=b[G],v;if(g)v=["fontSize","fontFamily","fontColor"];else{var B=c.getStyle(n),u=null!=B?B.split(";"):[];v=p.slice();for(var t=0;t<u.length;t++){var I=u[t],x=I.indexOf("=");if(0<=x){var L=I.substring(0,x),y=mxUtils.indexOf(v,L);0<=y&&v.splice(y,1);for(m=0;m<q.length;m++){var z=q[m];if(0<=mxUtils.indexOf(z,L))for(var ca=0;ca<z.length;ca++){var C=mxUtils.indexOf(v,z[ca]);0<=C&&v.splice(C,
-1)}}}}}var U=c.isEdge(n);m=U?l:e;for(var D=c.getStyle(n),t=0;t<v.length;t++){var L=v[t],O=m[L];null!=O&&"edgeStyle"!=L&&("shape"!=L||U)&&(!U||f||0>mxUtils.indexOf(d,L))&&(D=mxUtils.setStyle(D,L,O))}Editor.simpleLabels&&(D=mxUtils.setStyle(mxUtils.setStyle(D,"html",null),"whiteSpace",null));c.setStyle(n,D)}}finally{c.endUpdate()}return b};k.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){m(d.getProperty("cells"),
+for(var G=0;G<b.length;G++)m=m.concat(c.getDescendants(b[G]));b=m}c.beginUpdate();try{for(G=0;G<b.length;G++){var n=b[G],B;if(g)B=["fontSize","fontFamily","fontColor"];else{var v=c.getStyle(n),u=null!=v?v.split(";"):[];B=p.slice();for(var I=0;I<u.length;I++){var t=u[I],x=t.indexOf("=");if(0<=x){var M=t.substring(0,x),y=mxUtils.indexOf(B,M);0<=y&&B.splice(y,1);for(m=0;m<q.length;m++){var z=q[m];if(0<=mxUtils.indexOf(z,M))for(var ca=0;ca<z.length;ca++){var C=mxUtils.indexOf(B,z[ca]);0<=C&&B.splice(C,
+1)}}}}}var U=c.isEdge(n);m=U?l:e;for(var D=c.getStyle(n),I=0;I<B.length;I++){var M=B[I],P=m[M];null!=P&&"edgeStyle"!=M&&("shape"!=M||U)&&(!U||f||0>mxUtils.indexOf(d,M))&&(D=mxUtils.setStyle(D,M,P))}Editor.simpleLabels&&(D=mxUtils.setStyle(mxUtils.setStyle(D,"html",null),"whiteSpace",null));c.setStyle(n,D)}}finally{c.endUpdate()}return b};k.addListener("cellsInserted",function(b,d){m(d.getProperty("cells"),null,null,null,null,!0,!0)});k.addListener("textInserted",function(b,d){m(d.getProperty("cells"),
!0)});this.insertHandler=m;this.createDivs();this.createUi();this.refresh();var n=mxUtils.bind(this,function(b){null==b&&(b=window.event);return k.isEditing()||null!=b&&this.isSelectionAllowed(b)});this.container==document.body&&(this.menubarContainer.onselectstart=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(b){if(null!=b){var d=mxEvent.getSource(b);if("A"==d.nodeName)for(;null!=d;){if("geHint"==d.className)return!0;d=d.parentNode}}return n(b)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,
"contextmenu",c):this.diagramContainer.oncontextmenu=c):k.panningHandler.usePopupTrigger=!1;k.init(this.diagramContainer);mxClient.IS_SVG&&null!=k.view.getDrawPane()&&(c=k.view.getDrawPane().ownerSVGElement,null!=c&&(c.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=k.graphHandler){var u=k.graphHandler.start;k.graphHandler.start=function(){null!=C.hoverIcons&&C.hoverIcons.reset();u.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,
@@ -2150,7 +2152,7 @@ mxEvent.isConsumed(b)||27!=b.keyCode||this.hideDialog(null,!0):(v=!0,this.hoverI
arguments)||v||mxEvent.isMouseEvent(b.getEvent())&&(this.usePopupTrigger||!mxEvent.isPopupTrigger(b.getEvent()))&&(!mxEvent.isControlDown(b.getEvent())&&mxEvent.isRightMouseButton(b.getEvent())||mxEvent.isMiddleMouseButton(b.getEvent()))};var F=k.cellEditor.isStopEditingEvent;k.cellEditor.isStopEditingEvent=function(b){return F.apply(this,arguments)||13==b.keyCode&&(!mxClient.IS_SF&&mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxClient.IS_SF&&mxEvent.isShiftDown(b))};var H=k.isZoomWheelEvent;
k.isZoomWheelEvent=function(){return v||H.apply(this,arguments)};var z=!1,D=null,N=null,E=null,J=mxUtils.bind(this,function(){if(null!=this.toolbar&&z!=k.cellEditor.isContentEditing()){for(var b=this.toolbar.container.firstChild,d=[];null!=b;){var g=b.nextSibling;0>mxUtils.indexOf(this.toolbar.staticElements,b)&&(b.parentNode.removeChild(b),d.push(b));b=g}b=this.toolbar.fontMenu;g=this.toolbar.sizeMenu;if(null==E)this.toolbar.createTextToolbar();else{for(var c=0;c<E.length;c++)this.toolbar.container.appendChild(E[c]);
this.toolbar.fontMenu=D;this.toolbar.sizeMenu=N}z=k.cellEditor.isContentEditing();D=b;N=g;E=d}}),C=this,K=k.cellEditor.startEditing;k.cellEditor.startEditing=function(){K.apply(this,arguments);J();if(k.cellEditor.isContentEditing()){var b=!1,d=function(){b||(b=!0,window.setTimeout(function(){var d=k.getSelectedEditingElement();null!=d&&(d=mxUtils.getCurrentStyle(d),null!=d&&null!=C.toolbar&&(C.toolbar.setFontName(Graph.stripQuotes(d.fontFamily)),C.toolbar.setFontSize(parseInt(d.fontSize))));b=!1},
-0))};mxEvent.addListener(k.cellEditor.textarea,"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var M=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{M.apply(this,arguments),J()}catch(U){C.handleError(U)}};k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(L){}var Z=
+0))};mxEvent.addListener(k.cellEditor.textarea,"input",d);mxEvent.addListener(k.cellEditor.textarea,"touchend",d);mxEvent.addListener(k.cellEditor.textarea,"mouseup",d);mxEvent.addListener(k.cellEditor.textarea,"keyup",d);d()}};var L=k.cellEditor.stopEditing;k.cellEditor.stopEditing=function(b,d){try{L.apply(this,arguments),J()}catch(U){C.handleError(U)}};k.container.setAttribute("tabindex","0");k.container.style.cursor="default";if(window.self===window.top&&null!=k.container.parentNode)try{k.container.focus()}catch(M){}var Z=
k.fireMouseEvent;k.fireMouseEvent=function(b,d,g){b==mxEvent.MOUSE_DOWN&&this.container.focus();Z.apply(this,arguments)};k.popupMenuHandler.autoExpand=!0;null!=this.menus&&(k.popupMenuHandler.factoryMethod=mxUtils.bind(this,function(b,d,g){this.menus.createPopupMenu(b,d,g)}));mxEvent.addGestureListeners(document,mxUtils.bind(this,function(b){k.popupMenuHandler.hideMenu()}));this.keyHandler=this.createKeyHandler(b);this.getKeyHandler=function(){return keyHandler};k.connectionHandler.addListener(mxEvent.CONNECT,
function(b,d){var g=[d.getProperty("cell")];d.getProperty("terminalInserted")&&(g.push(d.getProperty("terminal")),window.setTimeout(function(){null!=C.hoverIcons&&C.hoverIcons.update(k.view.getState(g[g.length-1]))},0));m(g)});this.addListener("styleChanged",mxUtils.bind(this,function(b,d){var c=d.getProperty("cells"),e=!1,f=!1;if(0<c.length)for(var q=0;q<c.length&&(e=k.getModel().isVertex(c[q])||e,!(f=k.getModel().isEdge(c[q])||f)||!e);q++);else f=e=!0;for(var c=d.getProperty("keys"),m=d.getProperty("values"),
q=0;q<c.length;q++){var n=0<=mxUtils.indexOf(g,c[q]);if("strokeColor"!=c[q]||null!=m[q]&&"none"!=m[q])if(0<=mxUtils.indexOf(t,c[q]))f||0<=mxUtils.indexOf(l,c[q])?null==m[q]?delete k.currentEdgeStyle[c[q]]:k.currentEdgeStyle[c[q]]=m[q]:e&&0<=mxUtils.indexOf(p,c[q])&&(null==m[q]?delete k.currentVertexStyle[c[q]]:k.currentVertexStyle[c[q]]=m[q]);else if(0<=mxUtils.indexOf(p,c[q])){if(e||n)null==m[q]?delete k.currentVertexStyle[c[q]]:k.currentVertexStyle[c[q]]=m[q];if(f||n||0<=mxUtils.indexOf(l,c[q]))null==
@@ -2169,14 +2171,14 @@ EditorUi.prototype.init=function(){var b=this.editor.graph;if(!b.standalone){"0"
"keydown",mxUtils.bind(this,function(b){this.onKeyDown(b)}));mxEvent.addListener(b.container,"keypress",mxUtils.bind(this,function(b){this.onKeyPress(b)}));this.addUndoListener();this.addBeforeUnloadListener();b.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));b.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.updateActionStates()}));var c=b.setDefaultParent,e=this;this.editor.graph.setDefaultParent=function(){c.apply(this,
arguments);e.updateActionStates()};b.editLink=e.actions.get("editLink").funct;this.updateActionStates();this.initClipboard();this.initCanvas();null!=this.format&&this.format.init()}};EditorUi.prototype.clearSelectionState=function(){this.selectionState=null};EditorUi.prototype.getSelectionState=function(){null==this.selectionState&&(this.selectionState=this.createSelectionState());return this.selectionState};
EditorUi.prototype.createSelectionState=function(){for(var b=this.editor.graph,c=b.getSelectionCells(),e=this.initSelectionState(),k=!0,f=0;f<c.length;f++){var p=b.getCurrentCellStyle(c[f]);"0"!=mxUtils.getValue(p,mxConstants.STYLE_EDITABLE,"1")&&(this.updateSelectionStateForCell(e,c[f],c,k),k=!1)}this.updateSelectionStateForTableCells(e);return e};
-EditorUi.prototype.initSelectionState=function(){return{vertices:[],edges:[],cells:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,autoSize:!1,image:!0,shadow:!0,lineJumps:!0,resizable:!0,table:!1,cell:!1,row:!1,movable:!0,rotatable:!0,stroke:!0,unlocked:this.editor.graph.isEnabled(),connections:!1}};EditorUi.prototype.updateSelectionStateForTableCells=function(b){};
-EditorUi.prototype.updateSelectionStateForCell=function(b,c,e,k){e=this.editor.graph;b.cells.push(c);if(e.getModel().isVertex(c)){b.connections=0<e.model.getEdgeCount(c);b.unlocked=b.unlocked&&!e.isCellLocked(c);b.resizable=b.resizable&&e.isCellResizable(c);b.rotatable=b.rotatable&&e.isCellRotatable(c);b.movable=b.movable&&e.isCellMovable(c)&&!e.isTableRow(c)&&!e.isTableCell(c);b.table=b.table||e.isTable(c);b.cell=b.cell||e.isTableCell(c);b.row=b.row||e.isTableRow(c);b.vertices.push(c);var f=e.getCellGeometry(c);
-if(null!=f&&(0<f.width?null==b.width?b.width=f.width:b.width!=f.width&&(b.width=""):b.containsLabel=!0,0<f.height?null==b.height?b.height=f.height:b.height!=f.height&&(b.height=""):b.containsLabel=!0,!f.relative||null!=f.offset)){var p=f.relative?f.offset.x:f.x,f=f.relative?f.offset.y:f.y;null==b.x?b.x=p:b.x!=p&&(b.x="");null==b.y?b.y=f:b.y!=f&&(b.y="")}}else e.getModel().isEdge(c)&&(b.edges.push(c),b.connections=!0,b.resizable=!1,b.rotatable=!1,b.movable=!1);c=e.view.getState(c);null!=c&&(b.autoSize=
-b.autoSize||e.isAutoSizeState(c),b.glass=b.glass&&e.isGlassState(c),b.rounded=b.rounded&&e.isRoundedState(c),b.lineJumps=b.lineJumps&&e.isLineJumpState(c),b.image=b.image&&e.isImageState(c),b.shadow=b.shadow&&e.isShadowState(c),b.fill=b.fill&&e.isFillState(c),b.stroke=b.stroke&&e.isStrokeState(c),p=mxUtils.getValue(c.style,mxConstants.STYLE_SHAPE,null),b.containsImage=b.containsImage||"image"==p,e.mergeStyle(c.style,b.style,k))};
+EditorUi.prototype.initSelectionState=function(){return{vertices:[],edges:[],cells:[],x:null,y:null,width:null,height:null,style:{},containsImage:!1,containsLabel:!1,fill:!0,glass:!0,rounded:!0,autoSize:!1,image:!0,shadow:!0,lineJumps:!0,resizable:!0,table:!1,cell:!1,row:!1,movable:!0,rotatable:!0,stroke:!0,swimlane:!1,unlocked:this.editor.graph.isEnabled(),connections:!1}};EditorUi.prototype.updateSelectionStateForTableCells=function(b){};
+EditorUi.prototype.updateSelectionStateForCell=function(b,c,e,k){e=this.editor.graph;b.cells.push(c);if(e.getModel().isVertex(c)){b.connections=0<e.model.getEdgeCount(c);b.unlocked=b.unlocked&&!e.isCellLocked(c);b.resizable=b.resizable&&e.isCellResizable(c);b.rotatable=b.rotatable&&e.isCellRotatable(c);b.movable=b.movable&&e.isCellMovable(c)&&!e.isTableRow(c)&&!e.isTableCell(c);b.swimlane=b.swimlane||e.isSwimlane(c);b.table=b.table||e.isTable(c);b.cell=b.cell||e.isTableCell(c);b.row=b.row||e.isTableRow(c);
+b.vertices.push(c);var f=e.getCellGeometry(c);if(null!=f&&(0<f.width?null==b.width?b.width=f.width:b.width!=f.width&&(b.width=""):b.containsLabel=!0,0<f.height?null==b.height?b.height=f.height:b.height!=f.height&&(b.height=""):b.containsLabel=!0,!f.relative||null!=f.offset)){var p=f.relative?f.offset.x:f.x,f=f.relative?f.offset.y:f.y;null==b.x?b.x=p:b.x!=p&&(b.x="");null==b.y?b.y=f:b.y!=f&&(b.y="")}}else e.getModel().isEdge(c)&&(b.edges.push(c),b.connections=!0,b.resizable=!1,b.rotatable=!1,b.movable=
+!1);c=e.view.getState(c);null!=c&&(b.autoSize=b.autoSize||e.isAutoSizeState(c),b.glass=b.glass&&e.isGlassState(c),b.rounded=b.rounded&&e.isRoundedState(c),b.lineJumps=b.lineJumps&&e.isLineJumpState(c),b.image=b.image&&e.isImageState(c),b.shadow=b.shadow&&e.isShadowState(c),b.fill=b.fill&&e.isFillState(c),b.stroke=b.stroke&&e.isStrokeState(c),p=mxUtils.getValue(c.style,mxConstants.STYLE_SHAPE,null),b.containsImage=b.containsImage||"image"==p,e.mergeStyle(c.style,b.style,k))};
EditorUi.prototype.installShapePicker=function(){var b=this.editor.graph,c=this;b.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){"mouseDown"==d.getProperty("eventName")&&c.hideShapePicker()}));var e=mxUtils.bind(this,function(){c.hideShapePicker(!0)});b.addListener("wheel",e);b.addListener(mxEvent.ESCAPE,e);b.view.addListener(mxEvent.SCALE,e);b.view.addListener(mxEvent.SCALE_AND_TRANSLATE,e);b.getSelectionModel().addListener(mxEvent.CHANGE,e);b.getModel().addListener(mxEvent.CHANGE,
e);var k=b.popupMenuHandler.isMenuShowing;b.popupMenuHandler.isMenuShowing=function(){return k.apply(this,arguments)||null!=c.shapePicker};var f=b.dblClick;b.dblClick=function(d,e){if(this.isEnabled())if(null!=e||null==c.sidebar||mxEvent.isShiftDown(d)||b.isCellLocked(b.getDefaultParent()))f.apply(this,arguments);else{var g=mxUtils.convertPoint(this.container,mxEvent.getClientX(d),mxEvent.getClientY(d));mxEvent.consume(d);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(g.x,g.y)}),
-30)}};if(null!=this.hoverIcons){this.hoverIcons.addListener("reset",e);var p=this.hoverIcons.drag;this.hoverIcons.drag=function(){c.hideShapePicker();p.apply(this,arguments)};var t=this.hoverIcons.execute;this.hoverIcons.execute=function(d,e,f){var g=f.getEvent();this.graph.isCloneEvent(g)||mxEvent.isShiftDown(g)?t.apply(this,arguments):this.graph.connectVertex(d.cell,e,this.graph.defaultEdgeLength,g,null,null,mxUtils.bind(this,function(g,l,q){var k=b.getCompositeParent(d.cell);g=b.getCellGeometry(k);
-for(f.consume();null!=k&&b.model.isVertex(k)&&null!=g&&g.relative;)cell=k,k=b.model.getParent(cell),g=b.getCellGeometry(k);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(f.getGraphX(),f.getGraphY(),k,mxUtils.bind(this,function(d){q(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))}),e)}),30)}),mxUtils.bind(this,function(b){this.graph.selectCellsForConnectVertex(b,g,this)}))};var d=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(g,e){null!=d&&window.clearTimeout(d);
+30)}};if(null!=this.hoverIcons){this.hoverIcons.addListener("reset",e);var p=this.hoverIcons.drag;this.hoverIcons.drag=function(){c.hideShapePicker();p.apply(this,arguments)};var t=this.hoverIcons.execute;this.hoverIcons.execute=function(d,e,f){var g=f.getEvent();this.graph.isCloneEvent(g)||mxEvent.isShiftDown(g)?t.apply(this,arguments):this.graph.connectVertex(d.cell,e,this.graph.defaultEdgeLength,g,null,null,mxUtils.bind(this,function(g,l,k){var q=b.getCompositeParent(d.cell);g=b.getCellGeometry(q);
+for(f.consume();null!=q&&b.model.isVertex(q)&&null!=g&&g.relative;)cell=q,q=b.model.getParent(cell),g=b.getCellGeometry(q);window.setTimeout(mxUtils.bind(this,function(){c.showShapePicker(f.getGraphX(),f.getGraphY(),q,mxUtils.bind(this,function(d){k(d);null!=c.hoverIcons&&c.hoverIcons.update(b.view.getState(d))}),e)}),30)}),mxUtils.bind(this,function(b){this.graph.selectCellsForConnectVertex(b,g,this)}))};var d=null;this.hoverIcons.addListener("focus",mxUtils.bind(this,function(g,e){null!=d&&window.clearTimeout(d);
d=window.setTimeout(mxUtils.bind(this,function(){var d=e.getProperty("arrow"),g=e.getProperty("direction"),l=e.getProperty("event"),d=d.getBoundingClientRect(),f=mxUtils.getOffset(b.container),k=b.container.scrollLeft+d.x-f.x,f=b.container.scrollTop+d.y-f.y,t=b.getCompositeParent(null!=this.hoverIcons.currentState?this.hoverIcons.currentState.cell:null),p=c.showShapePicker(k,f,t,mxUtils.bind(this,function(d){null!=d&&b.connectVertex(t,g,b.defaultEdgeLength,l,!0,!0,function(g,e,l){l(d);null!=c.hoverIcons&&
c.hoverIcons.update(b.view.getState(d))},function(d){b.selectCellsForConnectVertex(d)},l,this.hoverIcons)}),g,!0);this.centerShapePicker(p,d,k,f,g);mxUtils.setOpacity(p,30);mxEvent.addListener(p,"mouseenter",function(){mxUtils.setOpacity(p,100)});mxEvent.addListener(p,"mouseleave",function(){c.hideShapePicker()})}),Editor.shapePickerHoverDelay)}));this.hoverIcons.addListener("blur",mxUtils.bind(this,function(b,c){null!=d&&window.clearTimeout(d)}))}};
EditorUi.prototype.centerShapePicker=function(b,c,e,k,f){if(f==mxConstants.DIRECTION_EAST||f==mxConstants.DIRECTION_WEST)b.style.width="40px";var p=b.getBoundingClientRect();f==mxConstants.DIRECTION_NORTH?(e-=p.width/2-10,k-=p.height+6):f==mxConstants.DIRECTION_SOUTH?(e-=p.width/2-10,k+=c.height+6):f==mxConstants.DIRECTION_WEST?(e-=p.width+6,k-=p.height/2-10):f==mxConstants.DIRECTION_EAST&&(e+=c.width+6,k-=p.height/2-10);b.style.left=e+"px";b.style.top=k+"px"};
@@ -2204,8 +2206,8 @@ null;c.cellEditor.isContentEditing()?document.execCommand("paste",!1,null):f=e.a
EditorUi.prototype.lazyZoomDelay=20;EditorUi.prototype.wheelZoomDelay=400;EditorUi.prototype.buttonZoomDelay=600;
EditorUi.prototype.initCanvas=function(){var b=this.editor.graph;b.timerAutoScroll=!0;b.getPagePadding=function(){return new mxPoint(Math.max(0,Math.round((b.container.offsetWidth-34)/b.view.scale)),Math.max(0,Math.round((b.container.offsetHeight-34)/b.view.scale)))};b.view.getBackgroundPageBounds=function(){var b=this.graph.getPageLayout(),d=this.graph.getPageSize();return new mxRectangle(this.scale*(this.translate.x+b.x*d.width),this.scale*(this.translate.y+b.y*d.height),this.scale*b.width*d.width,
this.scale*b.height*d.height)};b.getPreferredPageSize=function(b,d,g){b=this.getPageLayout();d=this.getPageSize();return new mxRectangle(0,0,b.width*d.width,b.height*d.height)};var c=null,e=this;if(this.editor.isChromelessView()){this.chromelessResize=c=mxUtils.bind(this,function(d,g,c,e){if(null!=b.container&&!b.isViewer()){c=null!=c?c:0;e=null!=e?e:0;var l=b.pageVisible?b.view.getBackgroundPageBounds():b.getGraphBounds(),f=mxUtils.hasScrollbars(b.container),k=b.view.translate,q=b.view.scale,m=mxRectangle.fromRectangle(l);
-m.x=m.x/q-k.x;m.y=m.y/q-k.y;m.width/=q;m.height/=q;var k=b.container.scrollTop,G=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var v=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(g||1,v/m.width)):q;g=(v-d*m.width)/2/d;var u=0==this.lightboxVerticalDivider?0:(n-d*m.height)/this.lightboxVerticalDivider/d;f&&(g=Math.max(g,0),u=Math.max(u,0));if(f||l.width<v||l.height<n)b.view.scaleAndTranslate(d,Math.floor(g-
-m.x),Math.floor(u-m.y)),b.container.scrollTop=k*d/q,b.container.scrollLeft=G*d/q;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/q),Math.floor(l.y+e/q))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
+m.x=m.x/q-k.x;m.y=m.y/q-k.y;m.width/=q;m.height/=q;var k=b.container.scrollTop,G=b.container.scrollLeft,n=8<=document.documentMode?20:14;if(8==document.documentMode||9==document.documentMode)n+=3;var v=b.container.offsetWidth-n,n=b.container.offsetHeight-n;d=d?Math.max(.3,Math.min(g||1,v/m.width)):q;g=(v-d*m.width)/2/d;var B=0==this.lightboxVerticalDivider?0:(n-d*m.height)/this.lightboxVerticalDivider/d;f&&(g=Math.max(g,0),B=Math.max(B,0));if(f||l.width<v||l.height<n)b.view.scaleAndTranslate(d,Math.floor(g-
+m.x),Math.floor(B-m.y)),b.container.scrollTop=k*d/q,b.container.scrollLeft=G*d/q;else if(0!=c||0!=e)l=b.view.translate,b.view.setTranslate(Math.floor(l.x+c/q),Math.floor(l.y+e/q))}});this.chromelessWindowResize=mxUtils.bind(this,function(){this.chromelessResize(!1)});var k=mxUtils.bind(this,function(){this.chromelessWindowResize(!1)});mxEvent.addListener(window,"resize",k);this.destroyFunctions.push(function(){mxEvent.removeListener(window,"resize",k)});this.editor.addListener("resetGraphView",mxUtils.bind(this,
function(){this.chromelessResize(!0)}));this.actions.get("zoomIn").funct=mxUtils.bind(this,function(d){b.zoomIn();this.chromelessResize(!1)});this.actions.get("zoomOut").funct=mxUtils.bind(this,function(d){b.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.padding="10px 10px 8px 10px";this.chromelessToolbar.style.left=b.isViewer()?"0":"50%";mxClient.IS_IE||mxClient.IS_IE11?(this.chromelessToolbar.style.backgroundColor="#ffffff",this.chromelessToolbar.style.border="3px solid black"):this.chromelessToolbar.style.backgroundColor="#000000";mxUtils.setPrefixedStyle(this.chromelessToolbar.style,"borderRadius","16px");mxUtils.setPrefixedStyle(this.chromelessToolbar.style,
"transition","opacity 600ms ease-in-out");var p=mxUtils.bind(this,function(){var d=mxUtils.getCurrentStyle(b.container);b.isViewer()?this.chromelessToolbar.style.top="0":this.chromelessToolbar.style.bottom=(null!=d?parseInt(d["margin-bottom"]||0):0)+(null!=this.tabContainer?20+parseInt(this.tabContainer.style.height):20)+"px"});this.editor.addListener("resetGraphView",p);p();var t=0,p=mxUtils.bind(this,function(b,d,g){t++;var c=document.createElement("span");c.style.paddingLeft="8px";c.style.paddingRight=
@@ -2225,14 +2227,14 @@ mxUtils.bind(this,function(d){b.tooltipHandler.resetTimer();b.tooltipHandler.hid
g.getGraphX();this.startY=g.getGraphY();this.scrollLeft=b.container.scrollLeft;this.scrollTop=b.container.scrollTop},mouseMove:function(b,d){},mouseUp:function(d,g){mxEvent.isTouchEvent(g.getEvent())&&Math.abs(this.scrollLeft-b.container.scrollLeft)<z&&Math.abs(this.scrollTop-b.container.scrollTop)<z&&Math.abs(this.startX-g.getGraphX())<z&&Math.abs(this.startY-g.getGraphY())<z&&(0<parseFloat(e.chromelessToolbar.style.opacity||0)?v():y(30))}})}this.editor.editable||this.addChromelessClickHandler()}else if(this.editor.extendCanvas){var D=
b.view.validate;b.view.validate=function(){if(null!=this.graph.container&&mxUtils.hasScrollbars(this.graph.container)){var b=this.graph.getPagePadding(),d=this.graph.getPageSize();this.translate.x=b.x-(this.x0||0)*d.width;this.translate.y=b.y-(this.y0||0)*d.height}D.apply(this,arguments)};if(!b.isViewer()){var N=b.sizeDidChange;b.sizeDidChange=function(){if(null!=this.container&&mxUtils.hasScrollbars(this.container)){var d=this.getPageLayout(),g=this.getPagePadding(),c=this.getPageSize(),e=Math.ceil(2*
g.x+d.width*c.width),l=Math.ceil(2*g.y+d.height*c.height),f=b.minimumGraphSize;if(null==f||f.width!=e||f.height!=l)b.minimumGraphSize=new mxRectangle(0,0,e,l);e=g.x-d.x*c.width;g=g.y-d.y*c.height;this.autoTranslate||this.view.translate.x==e&&this.view.translate.y==g?N.apply(this,arguments):(this.autoTranslate=!0,this.view.x0=d.x,this.view.y0=d.y,d=b.view.translate.x,c=b.view.translate.y,b.view.setTranslate(e,g),b.container.scrollLeft+=Math.round((e-d)*b.view.scale),b.container.scrollTop+=Math.round((g-
-c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var E=b.view.getBackgroundPane(),J=b.view.getDrawPane();b.cumulativeZoomFactor=1;var C=null,K=null,M=null,Z=null,L=null,O=function(d){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!b.isMouseDown||Z)C=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
+c)*b.view.scale),this.autoTranslate=!1)}else this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",this.getGraphBounds()))}}}var E=b.view.getBackgroundPane(),J=b.view.getDrawPane();b.cumulativeZoomFactor=1;var C=null,K=null,L=null,Z=null,M=null,P=function(d){null!=C&&window.clearTimeout(C);window.setTimeout(function(){if(!b.isMouseDown||Z)C=window.setTimeout(mxUtils.bind(this,function(){b.isFastZoomEnabled()&&(null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,
"transform-origin",null),mxUtils.setPrefixedStyle(b.view.backgroundPageShape.node.style,"transform",null)),J.style.transformOrigin="",E.style.transformOrigin="",mxClient.IS_SF?(J.style.transform="scale(1)",E.style.transform="scale(1)",window.setTimeout(function(){J.style.transform="";E.style.transform=""},0)):(J.style.transform="",E.style.transform=""),b.view.getDecoratorPane().style.opacity="",b.view.getOverlayPane().style.opacity="");var d=new mxPoint(b.container.scrollLeft,b.container.scrollTop),
-g=mxUtils.getOffset(b.container),l=b.view.scale,f=0,k=0;null!=K&&(f=b.container.offsetWidth/2-K.x+g.x,k=b.container.offsetHeight/2-K.y+g.y);b.zoom(b.cumulativeZoomFactor,null,20);b.view.scale!=l&&(null!=M&&(f+=d.x-M.x,k+=d.y-M.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),k*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==k||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=k*(b.cumulativeZoomFactor-1)));null!=L&&J.setAttribute("filter",
-L);b.cumulativeZoomFactor=1;L=Z=K=M=C=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,g,c,l){l=null!=l?l:this.zoomFactor;(g=g||!b.scrollbars)&&(K=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=l,this.cumulativeZoomFactor=Math.round(this.view.scale*
-this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=l,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;b.isFastZoomEnabled()&&(null==L&&""!=J.getAttribute("filter")&&(L=J.getAttribute("filter"),
-J.removeAttribute("filter")),M=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=g||null==K?b.container.scrollLeft+b.container.clientWidth/2:K.x+b.container.scrollLeft-b.container.offsetLeft,l=g||null==K?b.container.scrollTop+b.container.clientHeight/2:K.y+b.container.scrollTop-b.container.offsetTop,J.style.transformOrigin=d+"px "+l+"px",J.style.transform="scale("+this.cumulativeZoomFactor+")",E.style.transformOrigin=d+"px "+l+"px",E.style.transform="scale("+this.cumulativeZoomFactor+")",
+g=mxUtils.getOffset(b.container),l=b.view.scale,f=0,k=0;null!=K&&(f=b.container.offsetWidth/2-K.x+g.x,k=b.container.offsetHeight/2-K.y+g.y);b.zoom(b.cumulativeZoomFactor,null,20);b.view.scale!=l&&(null!=L&&(f+=d.x-L.x,k+=d.y-L.y),null!=c&&e.chromelessResize(!1,null,f*(b.cumulativeZoomFactor-1),k*(b.cumulativeZoomFactor-1)),!mxUtils.hasScrollbars(b.container)||0==f&&0==k||(b.container.scrollLeft-=f*(b.cumulativeZoomFactor-1),b.container.scrollTop-=k*(b.cumulativeZoomFactor-1)));null!=M&&J.setAttribute("filter",
+M);b.cumulativeZoomFactor=1;M=Z=K=L=C=null}),null!=d?d:b.isFastZoomEnabled()?e.wheelZoomDelay:e.lazyZoomDelay)},0)};b.lazyZoom=function(d,g,c,l){l=null!=l?l:this.zoomFactor;(g=g||!b.scrollbars)&&(K=new mxPoint(b.container.offsetLeft+b.container.clientWidth/2,b.container.offsetTop+b.container.clientHeight/2));d?.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=l,this.cumulativeZoomFactor=Math.round(this.view.scale*
+this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=l,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale);this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;b.isFastZoomEnabled()&&(null==M&&""!=J.getAttribute("filter")&&(M=J.getAttribute("filter"),
+J.removeAttribute("filter")),L=new mxPoint(b.container.scrollLeft,b.container.scrollTop),d=g||null==K?b.container.scrollLeft+b.container.clientWidth/2:K.x+b.container.scrollLeft-b.container.offsetLeft,l=g||null==K?b.container.scrollTop+b.container.clientHeight/2:K.y+b.container.scrollTop-b.container.offsetTop,J.style.transformOrigin=d+"px "+l+"px",J.style.transform="scale("+this.cumulativeZoomFactor+")",E.style.transformOrigin=d+"px "+l+"px",E.style.transform="scale("+this.cumulativeZoomFactor+")",
null!=b.view.backgroundPageShape&&null!=b.view.backgroundPageShape.node&&(d=b.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(d.style,"transform-origin",(g||null==K?b.container.clientWidth/2+b.container.scrollLeft-d.offsetLeft+"px":K.x+b.container.scrollLeft-d.offsetLeft-b.container.offsetLeft+"px")+" "+(g||null==K?b.container.clientHeight/2+b.container.scrollTop-d.offsetTop+"px":K.y+b.container.scrollTop-d.offsetTop-b.container.offsetTop+"px")),mxUtils.setPrefixedStyle(d.style,"transform",
-"scale("+this.cumulativeZoomFactor+")")),b.view.getDecoratorPane().style.opacity="0",b.view.getOverlayPane().style.opacity="0",null!=e.hoverIcons&&e.hoverIcons.reset());O(c)};mxEvent.addGestureListeners(b.container,function(b){null!=C&&window.clearTimeout(C)},null,function(d){1!=b.cumulativeZoomFactor&&O(0)});mxEvent.addListener(b.container,"scroll",function(d){null==C||b.isMouseDown||1==b.cumulativeZoomFactor||O(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,g,c,e,l){b.fireEvent(new mxEventObject("wheel"));
+"scale("+this.cumulativeZoomFactor+")")),b.view.getDecoratorPane().style.opacity="0",b.view.getOverlayPane().style.opacity="0",null!=e.hoverIcons&&e.hoverIcons.reset());P(c)};mxEvent.addGestureListeners(b.container,function(b){null!=C&&window.clearTimeout(C)},null,function(d){1!=b.cumulativeZoomFactor&&P(0)});mxEvent.addListener(b.container,"scroll",function(d){null==C||b.isMouseDown||1==b.cumulativeZoomFactor||P(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(d,g,c,e,l){b.fireEvent(new mxEventObject("wheel"));
if(null==this.dialogs||0==this.dialogs.length)if(!b.scrollbars&&!c&&b.isScrollWheelEvent(d))c=b.view.getTranslate(),e=40/b.view.scale,mxEvent.isShiftDown(d)?b.view.setTranslate(c.x+(g?-e:e),c.y):b.view.setTranslate(c.x,c.y+(g?e:-e));else if(c||b.isZoomWheelEvent(d))for(var f=mxEvent.getSource(d);null!=f;){if(f==b.container)return b.tooltipHandler.hideTooltip(),K=null!=e&&null!=l?new mxPoint(e,l):new mxPoint(mxEvent.getClientX(d),mxEvent.getClientY(d)),Z=c,c=b.zoomFactor,null!=d.deltaY&&Math.round(d.deltaY)!=
d.deltaY&&(c=1+Math.abs(d.deltaY)/20*(c-1)),b.lazyZoom(g,null,null,c),mxEvent.consume(d),!1;f=f.parentNode}}),b.container);b.panningHandler.zoomGraph=function(d){b.cumulativeZoomFactor=d.scale;b.lazyZoom(0<d.scale,!0);mxEvent.consume(d)}};EditorUi.prototype.addChromelessToolbarItems=function(b){b(mxUtils.bind(this,function(b){this.actions.get("print").funct();mxEvent.consume(b)}),Editor.printImage,mxResources.get("print"))};
EditorUi.prototype.isPagesEnabled=function(){return this.editor.editable||"1"!=urlParams["hide-pages"]};EditorUi.prototype.createTemporaryGraph=function(b){return Graph.createOffscreenGraph(b)};EditorUi.prototype.addChromelessClickHandler=function(){var b=urlParams.highlight;null!=b&&0<b.length&&(b="#"+b);this.editor.graph.addClickHandler(b)};
@@ -2329,35 +2331,35 @@ mxGraphView.prototype.setUnit=function(b){this.unit!=b&&(this.unit=b,this.fireEv
mxImageShape.prototype.getImageDataUri=function(){var b=this.image;if("data:image/svg+xml;base64,"==b.substring(0,26)&&null!=this.style&&"1"==mxUtils.getValue(this.style,"clipSvg","0")){if(null==this.clippedSvg||this.clippedImage!=b)this.clippedSvg=Graph.clipSvgDataUri(b,!0),this.clippedImage=b;b=this.clippedSvg}return b};
Graph=function(b,c,e,k,f,p){mxGraph.call(this,b,c,e,k);this.themes=f||this.defaultThemes;this.currentEdgeStyle=mxUtils.clone(this.defaultEdgeStyle);this.currentVertexStyle=mxUtils.clone(this.defaultVertexStyle);this.standalone=null!=p?p:!1;b=this.baseUrl;c=b.indexOf("//");this.domainPathUrl=this.domainUrl="";0<c&&(c=b.indexOf("/",c+2),0<c&&(this.domainUrl=b.substring(0,c)),c=b.lastIndexOf("/"),0<c&&(this.domainPathUrl=b.substring(0,c+1)));this.isHtmlLabel=function(b){b=this.getCurrentCellStyle(b);
return null!=b?"1"==b.html||"wrap"==b[mxConstants.STYLE_WHITE_SPACE]:!1};if(this.edgeMode){var t=null,d=null,g=null,l=null,q=!1;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,c){if("mouseDown"==c.getProperty("eventName")&&this.isEnabled()){var e=c.getProperty("event"),f=e.getState(),k=this.view.scale;if(!mxEvent.isAltDown(e.getEvent())&&null!=f)if(this.model.isEdge(f.cell))if(t=new mxPoint(e.getGraphX(),e.getGraphY()),q=this.isCellSelected(f.cell),g=f,d=e,null!=f.text&&null!=
-f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,e.getGraphX(),e.getGraphY()))l=mxEvent.LABEL_HANDLE;else{var m=this.selectionCellsHandler.getHandler(f.cell);null!=m&&null!=m.bends&&0<m.bends.length&&(l=m.getHandleForEvent(e))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(e.getEvent())&&(m=this.selectionCellsHandler.getHandler(f.cell),null==m||null==m.getHandleForEvent(e))){var n=new mxRectangle(e.getGraphX()-1,e.getGraphY()-1);n.grow(mxEvent.isTouchEvent(e.getEvent())?mxShape.prototype.svgStrokeTolerance-
-1:(mxShape.prototype.svgStrokeTolerance+1)/2);if(this.isTableCell(f.cell)&&!this.isCellSelected(f.cell)){var v=this.model.getParent(f.cell),m=this.model.getParent(v);if(!this.isCellSelected(m)){var u=this.getCellGeometry(f.cell),u=null!=u.alternateBounds?u.alternateBounds:u;if(mxUtils.intersects(n,new mxRectangle(f.x,f.y-2,u.width*k,3))&&this.model.getChildAt(m,0)!=v||mxUtils.intersects(n,new mxRectangle(f.x,f.y+u.height-2,u.width,3))||mxUtils.intersects(n,new mxRectangle(f.x-2,f.y,2,u.height*k))&&
-this.model.getChildAt(v,0)!=f.cell||mxUtils.intersects(n,new mxRectangle(f.x+u.width*k-2,f.y,2,u.height*k)))v=this.selectionCellsHandler.isHandled(m),this.selectCellForEvent(m,e.getEvent()),m=this.selectionCellsHandler.getHandler(m),null!=m&&(u=m.getHandleForEvent(e),null!=u&&(m.start(e.getGraphX(),e.getGraphY(),u),m.blockDelayedSelection=!v,e.consume()))}}for(;!e.isConsumed()&&null!=f&&(this.isTableCell(f.cell)||this.isTableRow(f.cell)||this.isTable(f.cell));)this.isSwimlane(f.cell)&&(m=this.getActualStartSize(f.cell),
-(0<m.x||0<m.width)&&mxUtils.intersects(n,new mxRectangle(f.x+(m.x-m.width-1)*k+(0==m.x?f.width:0),f.y,1,f.height))||(0<m.y||0<m.height)&&mxUtils.intersects(n,new mxRectangle(f.x,f.y+(m.y-m.height-1)*k+(0==m.y?f.height:0),f.width,1)))&&(this.selectCellForEvent(f.cell,e.getEvent()),m=this.selectionCellsHandler.getHandler(f.cell),null!=m&&(u=mxEvent.CUSTOM_HANDLE-m.customHandles.length+1,m.start(e.getGraphX(),e.getGraphY(),u),e.consume())),f=this.view.getState(this.model.getParent(f.cell))}}}));this.addMouseListener({mouseDown:function(b,
-d){},mouseMove:mxUtils.bind(this,function(b,c){var e=this.selectionCellsHandler.handlers.map,f;for(f in e)if(null!=e[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(c.getEvent()))if(f=this.tolerance,null!=t&&null!=g&&null!=d){if(e=g,Math.abs(t.x-c.getGraphX())>f||Math.abs(t.y-c.getGraphY())>f){var k=this.selectionCellsHandler.getHandler(e.cell);null==k&&this.model.isEdge(e.cell)&&(k=this.createHandler(e));if(null!=k&&null!=k.bends&&0<k.bends.length){f=k.getHandleForEvent(d);
-var m=this.view.getEdgeStyle(e),n=m==mxEdgeStyle.EntityRelation;q||l!=mxEvent.LABEL_HANDLE||(f=l);if(n&&0!=f&&f!=k.bends.length-1&&f!=mxEvent.LABEL_HANDLE)!n||null==e.visibleSourceState&&null==e.visibleTargetState||(this.graphHandler.reset(),c.consume());else if(f==mxEvent.LABEL_HANDLE||0==f||null!=e.visibleSourceState||f==k.bends.length-1||null!=e.visibleTargetState)n||f==mxEvent.LABEL_HANDLE||(n=e.absolutePoints,null!=n&&(null==m&&null==f||m==mxEdgeStyle.OrthConnector)&&(f=l,null==f&&(f=new mxRectangle(t.x,
-t.y),f.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(f,n[0].x,n[0].y)?f=0:mxUtils.contains(f,n[n.length-1].x,n[n.length-1].y)?f=k.bends.length-1:null!=m&&(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)))?f=2:(f=mxUtils.findNearestSegment(e,t.x,t.y),f=null==m?mxEvent.VIRTUAL_HANDLE-f:f+1))),null==f&&(f=mxEvent.VIRTUAL_HANDLE)),k.start(c.getGraphX(),c.getGraphX(),f),c.consume(),this.graphHandler.reset()}null!=
-k&&(this.selectionCellsHandler.isHandlerActive(k)?this.isCellSelected(e.cell)||(this.selectionCellsHandler.handlers.put(e.cell,k),this.selectCellForEvent(e.cell,c.getEvent())):this.isCellSelected(e.cell)||k.destroy());q=!1;t=d=g=l=null}}else if(e=c.getState(),null!=e&&this.isCellEditable(e.cell)){k=null;if(this.model.isEdge(e.cell)){if(f=new mxRectangle(c.getGraphX(),c.getGraphY()),f.grow(mxEdgeHandler.prototype.handleImage.width/2),n=e.absolutePoints,null!=n)if(null!=e.text&&null!=e.text.boundingBox&&
-mxUtils.contains(e.text.boundingBox,c.getGraphX(),c.getGraphY()))k="move";else if(mxUtils.contains(f,n[0].x,n[0].y)||mxUtils.contains(f,n[n.length-1].x,n[n.length-1].y))k="pointer";else if(null!=e.visibleSourceState||null!=e.visibleTargetState)f=this.view.getEdgeStyle(e),k="crosshair",f!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(e)&&(f=mxUtils.findNearestSegment(e,c.getGraphX(),c.getGraphY()),f<n.length-1&&0<=f&&(k=0==Math.round(n[f].x-n[f+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(c.getEvent())){f=
-new mxRectangle(c.getGraphX()-1,c.getGraphY()-1);f.grow(mxShape.prototype.svgStrokeTolerance/2);if(this.isTableCell(e.cell)&&(n=this.model.getParent(e.cell),m=this.model.getParent(n),!this.isCellSelected(m)))if(mxUtils.intersects(f,new mxRectangle(e.x-2,e.y,2,e.height))&&this.model.getChildAt(n,0)!=e.cell||mxUtils.intersects(f,new mxRectangle(e.x+e.width-2,e.y,2,e.height)))k="col-resize";else if(mxUtils.intersects(f,new mxRectangle(e.x,e.y-2,e.width,3))&&this.model.getChildAt(m,0)!=n||mxUtils.intersects(f,
-new mxRectangle(e.x,e.y+e.height-2,e.width,3)))k="row-resize";for(n=e;null==k&&null!=n&&(this.isTableCell(n.cell)||this.isTableRow(n.cell)||this.isTable(n.cell));){if(this.isSwimlane(n.cell)){var m=this.getActualStartSize(n.cell),v=this.view.scale;(0<m.x||0<m.width)&&mxUtils.intersects(f,new mxRectangle(n.x+(m.x-m.width-1)*v+(0==m.x?n.width*v:0),n.y,1,n.height))?k="col-resize":(0<m.y||0<m.height)&&mxUtils.intersects(f,new mxRectangle(n.x,n.y+(m.y-m.height-1)*v+(0==m.y?n.height:0),n.width,1))&&(k=
-"row-resize")}n=this.view.getState(this.model.getParent(n.cell))}}null!=k&&e.setCursor(k)}}),mouseUp:mxUtils.bind(this,function(b,c){l=t=d=g=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(b){var d=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);b.view.graph.isHtmlLabel(b.cell)&&(d=1!=b.style.html?mxUtils.htmlEntities(d,!1):b.view.graph.sanitizeHtml(d));return d};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(b,d){return!1};this.alternateEdgeStyle="vertical";null==k&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=
-function(){var b=m.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],g=this.graph.pageFormat,c=this.graph.pageScale,e=g.width*c,g=g.height*c,c=this.graph.view.translate,f=this.graph.view.scale,l=this.graph.getPageLayout(),k=0;k<l.width;k++)d.push(new mxRectangle(((l.x+k)*e+c.x)*f,(l.y*g+c.y)*f,e*f,g*f));for(k=1;k<l.height;k++)d.push(new mxRectangle((l.x*e+c.x)*f,((l.y+k)*g+c.y)*f,e*f,g*f));b=d.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=
-function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var n=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=n.apply(this,arguments),g=new mxDictionary,c=[],e=0;e<d.length;e++){var f=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&
-this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==f||g.get(f)||(g.put(f,!0),c.push(f))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,g,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));
-u.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var v=new mxRubberband(this);this.getRubberband=function(){return v};var y=(new Date).getTime(),x=0,F=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;F.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var H=
-this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,"outlineConnect","1"))&&H.apply(this,arguments)};var z=this.isToggleEvent;this.isToggleEvent=function(b){return z.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var D=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return D.apply(this,
-arguments)&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&mxEvent.isTouchEvent(b.getEvent())};var N=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(N=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,
-mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=N)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var E=this.click;this.click=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);if(this.isEnabled()&&!d||b.isConsumed())return E.apply(this,arguments);var g=d?b.sourceState.cell:b.getCell();null!=g&&(g=this.getClickableLinkForCell(g),null!=g&&(this.isCustomLink(g)?
-this.customLinkClicked(g):this.openLink(g)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var J=this.tooltipHandler.show;this.tooltipHandler.show=function(){J.apply(this,arguments);if(null!=this.div)for(var b=this.div.getElementsByTagName("a"),d=0;d<b.length;d++)null!=b[d].getAttribute("href")&&null==b[d].getAttribute("target")&&b[d].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};
-this.getCursorForMouseEvent=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);return this.getCursorForCell(d?b.sourceState.cell:b.getCell())};var C=this.getCursorForCell;this.getCursorForCell=function(b){if(!this.isEnabled()||this.isCellLocked(b)){if(null!=this.getClickableLinkForCell(b))return"pointer";if(this.isCellLocked(b))return"default"}return C.apply(this,arguments)};this.selectRegion=function(b,d){var g=mxEvent.isAltDown(d)?b:null,g=this.getCells(b.x,
-b.y,b.width,b.height,null,null,g,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var c=0;c<g.length;c++)this.selectCellForEvent(g[c],d);else this.selectCellsForEvent(g,d);return g};var K=this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,g){return this.graph.isCellSelected(b)?!1:K.apply(this,arguments)};this.isCellLocked=function(b){for(;null!=b;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(b),
-"locked","0"))return!0;b=this.model.getParent(b)}return!1};var M=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var g=d.getProperty("event").getState();M=null==g||this.isSelectionEmpty()||this.isCellSelected(g.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var g=d.getProperty("event"),c=d.getProperty("cell");null==c?(g=mxUtils.convertPoint(this.container,
-mxEvent.getClientX(g),mxEvent.getClientY(g)),v.start(g.x,g.y)):null!=M?this.addSelectionCells(M):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);M=null;d.consume()}}));this.connectionHandler.selectCells=function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var g=b.view.graph;return d&&(g.isCellSelected(b.cell)||g.isTableRow(b.cell)&&g.selectionCellsHandler.isHandled(g.model.getParent(b.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,
-mxUtils.bind(this,function(){var b=this.connectionHandler.constraintHandler;null!=b.currentFocus&&b.isStateIgnored(b.currentFocus,!0)&&(b.currentFocus=null,b.constraints=null,b.destroyIcons());b.destroyFocusHighlight()}));Graph.touchStyle&&this.initTouch();var Z=this.updateMouseEvent;this.updateMouseEvent=function(b){b=Z.apply(this,arguments);null!=b.state&&this.isCellLocked(b.getCell())&&(b.state=null);return b}}this.currentTranslate=new mxPoint(0,0)};
-Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.translateDiagram="1"==urlParams["translate-diagram"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;
-Graph.defaultJumpSize=6;Graph.zoomWheel=!1;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.xmlDeclaration='<?xml version="1.0" encoding="UTF-8"?>';Graph.svgDoctype='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';Graph.svgFileComment="\x3c!-- Do not edit this file with editors other than diagrams.net --\x3e";
-Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
+f.text.boundingBox&&mxUtils.contains(f.text.boundingBox,e.getGraphX(),e.getGraphY()))l=mxEvent.LABEL_HANDLE;else{var m=this.selectionCellsHandler.getHandler(f.cell);null!=m&&null!=m.bends&&0<m.bends.length&&(l=m.getHandleForEvent(e))}else if(!this.panningHandler.isActive()&&!mxEvent.isControlDown(e.getEvent())&&(m=this.selectionCellsHandler.getHandler(f.cell),null==m||null==m.getHandleForEvent(e))){var n=new mxRectangle(e.getGraphX()-1,e.getGraphY()-1),m=mxEvent.isTouchEvent(e.getEvent())?mxShape.prototype.svgStrokeTolerance-
+1:(mxShape.prototype.svgStrokeTolerance+1)/2;n.grow(m);if(this.isTableCell(f.cell)&&!this.isCellSelected(f.cell)&&!(mxUtils.contains(f,e.getGraphX()-m,e.getGraphY()-m)&&mxUtils.contains(f,e.getGraphX()-m,e.getGraphY()+m)&&mxUtils.contains(f,e.getGraphX()+m,e.getGraphY()+m)&&mxUtils.contains(f,e.getGraphX()+m,e.getGraphY()-m))){var v=this.model.getParent(f.cell),m=this.model.getParent(v);if(!this.isCellSelected(m)){var u=this.getCellGeometry(f.cell),u=null!=u.alternateBounds?u.alternateBounds:u;if(mxUtils.intersects(n,
+new mxRectangle(f.x,f.y-2,u.width*k,3))&&this.model.getChildAt(m,0)!=v||mxUtils.intersects(n,new mxRectangle(f.x,f.y+u.height-2,u.width,3))||mxUtils.intersects(n,new mxRectangle(f.x-2,f.y,2,u.height*k))&&this.model.getChildAt(v,0)!=f.cell||mxUtils.intersects(n,new mxRectangle(f.x+u.width*k-2,f.y,2,u.height*k)))v=this.selectionCellsHandler.isHandled(m),this.selectCellForEvent(m,e.getEvent()),m=this.selectionCellsHandler.getHandler(m),null!=m&&(u=m.getHandleForEvent(e),null!=u&&(m.start(e.getGraphX(),
+e.getGraphY(),u),m.blockDelayedSelection=!v,e.consume()))}}for(;!e.isConsumed()&&null!=f&&(this.isTableCell(f.cell)||this.isTableRow(f.cell)||this.isTable(f.cell));)this.isSwimlane(f.cell)&&(m=this.getActualStartSize(f.cell),(0<m.x||0<m.width)&&mxUtils.intersects(n,new mxRectangle(f.x+(m.x-m.width-1)*k+(0==m.x?f.width:0),f.y,1,f.height))||(0<m.y||0<m.height)&&mxUtils.intersects(n,new mxRectangle(f.x,f.y+(m.y-m.height-1)*k+(0==m.y?f.height:0),f.width,1)))&&(this.selectCellForEvent(f.cell,e.getEvent()),
+m=this.selectionCellsHandler.getHandler(f.cell),null!=m&&(u=mxEvent.CUSTOM_HANDLE-m.customHandles.length+1,m.start(e.getGraphX(),e.getGraphY(),u),e.consume())),f=this.view.getState(this.model.getParent(f.cell))}}}));this.addMouseListener({mouseDown:function(b,d){},mouseMove:mxUtils.bind(this,function(b,c){var e=this.selectionCellsHandler.handlers.map,f;for(f in e)if(null!=e[f].index)return;if(this.isEnabled()&&!this.panningHandler.isActive()&&!mxEvent.isAltDown(c.getEvent())){var k=this.tolerance;
+if(null!=t&&null!=g&&null!=d){if(e=g,Math.abs(t.x-c.getGraphX())>k||Math.abs(t.y-c.getGraphY())>k){var m=this.selectionCellsHandler.getHandler(e.cell);null==m&&this.model.isEdge(e.cell)&&(m=this.createHandler(e));if(null!=m&&null!=m.bends&&0<m.bends.length){f=m.getHandleForEvent(d);var n=this.view.getEdgeStyle(e),k=n==mxEdgeStyle.EntityRelation;q||l!=mxEvent.LABEL_HANDLE||(f=l);if(k&&0!=f&&f!=m.bends.length-1&&f!=mxEvent.LABEL_HANDLE)!k||null==e.visibleSourceState&&null==e.visibleTargetState||(this.graphHandler.reset(),
+c.consume());else if(f==mxEvent.LABEL_HANDLE||0==f||null!=e.visibleSourceState||f==m.bends.length-1||null!=e.visibleTargetState)k||f==mxEvent.LABEL_HANDLE||(k=e.absolutePoints,null!=k&&(null==n&&null==f||n==mxEdgeStyle.OrthConnector)&&(f=l,null==f&&(f=new mxRectangle(t.x,t.y),f.grow(mxEdgeHandler.prototype.handleImage.width/2),mxUtils.contains(f,k[0].x,k[0].y)?f=0:mxUtils.contains(f,k[k.length-1].x,k[k.length-1].y)?f=m.bends.length-1:null!=n&&(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)))?f=2:(f=mxUtils.findNearestSegment(e,t.x,t.y),f=null==n?mxEvent.VIRTUAL_HANDLE-f:f+1))),null==f&&(f=mxEvent.VIRTUAL_HANDLE)),m.start(c.getGraphX(),c.getGraphX(),f),c.consume(),this.graphHandler.reset()}null!=m&&(this.selectionCellsHandler.isHandlerActive(m)?this.isCellSelected(e.cell)||(this.selectionCellsHandler.handlers.put(e.cell,m),this.selectCellForEvent(e.cell,c.getEvent())):this.isCellSelected(e.cell)||
+m.destroy());q=!1;t=d=g=l=null}}else if(e=c.getState(),null!=e&&this.isCellEditable(e.cell)){m=null;if(this.model.isEdge(e.cell)){if(f=new mxRectangle(c.getGraphX(),c.getGraphY()),f.grow(mxEdgeHandler.prototype.handleImage.width/2),k=e.absolutePoints,null!=k)if(null!=e.text&&null!=e.text.boundingBox&&mxUtils.contains(e.text.boundingBox,c.getGraphX(),c.getGraphY()))m="move";else if(mxUtils.contains(f,k[0].x,k[0].y)||mxUtils.contains(f,k[k.length-1].x,k[k.length-1].y))m="pointer";else if(null!=e.visibleSourceState||
+null!=e.visibleTargetState)f=this.view.getEdgeStyle(e),m="crosshair",f!=mxEdgeStyle.EntityRelation&&this.isOrthogonal(e)&&(f=mxUtils.findNearestSegment(e,c.getGraphX(),c.getGraphY()),f<k.length-1&&0<=f&&(m=0==Math.round(k[f].x-k[f+1].x)?"col-resize":"row-resize"))}else if(!mxEvent.isControlDown(c.getEvent())){k=mxShape.prototype.svgStrokeTolerance/2;f=new mxRectangle(c.getGraphX()-1,c.getGraphY()-1);f.grow(k);if(this.isTableCell(e.cell)&&(k=this.model.getParent(e.cell),n=this.model.getParent(k),!this.isCellSelected(n)))if(mxUtils.intersects(f,
+new mxRectangle(e.x-2,e.y,4,e.height))&&this.model.getChildAt(k,0)!=e.cell||mxUtils.intersects(f,new mxRectangle(e.x+e.width-2,e.y,4,e.height)))m="col-resize";else if(mxUtils.intersects(f,new mxRectangle(e.x,e.y-2,e.width,4))&&this.model.getChildAt(n,0)!=k||mxUtils.intersects(f,new mxRectangle(e.x,e.y+e.height-2,e.width,4)))m="row-resize";for(k=e;null==m&&null!=k&&(this.isTableCell(k.cell)||this.isTableRow(k.cell)||this.isTable(k.cell));){if(this.isSwimlane(k.cell)){var n=this.getActualStartSize(k.cell),
+v=this.view.scale;(0<n.x||0<n.width)&&mxUtils.intersects(f,new mxRectangle(k.x+(n.x-n.width-1)*v+(0==n.x?k.width*v:0),k.y,1,k.height))?m="col-resize":(0<n.y||0<n.height)&&mxUtils.intersects(f,new mxRectangle(k.x,k.y+(n.y-n.height-1)*v+(0==n.y?k.height:0),k.width,1))&&(m="row-resize")}k=this.view.getState(this.model.getParent(k.cell))}}null!=m&&e.setCursor(m)}}}),mouseUp:mxUtils.bind(this,function(b,c){l=t=d=g=null})})}this.cellRenderer.minSvgStrokeWidth=.1;this.cellRenderer.getLabelValue=function(b){var d=
+mxCellRenderer.prototype.getLabelValue.apply(this,arguments);b.view.graph.isHtmlLabel(b.cell)&&(d=1!=b.style.html?mxUtils.htmlEntities(d,!1):b.view.graph.sanitizeHtml(d));return d};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(b,d){return!1};this.alternateEdgeStyle="vertical";null==k&&this.loadStylesheet();var m=this.graphHandler.getGuideStates;this.graphHandler.getGuideStates=function(){var b=m.apply(this,arguments);if(this.graph.pageVisible){for(var d=[],g=this.graph.pageFormat,c=this.graph.pageScale,e=g.width*c,g=g.height*c,c=this.graph.view.translate,f=this.graph.view.scale,l=this.graph.getPageLayout(),
+k=0;k<l.width;k++)d.push(new mxRectangle(((l.x+k)*e+c.x)*f,(l.y*g+c.y)*f,e*f,g*f));for(k=1;k<l.height;k++)d.push(new mxRectangle((l.x*e+c.x)*f,((l.y+k)*g+c.y)*f,e*f,g*f));b=d.concat(b)}return b};mxDragSource.prototype.dragElementZIndex=mxPopupMenu.prototype.zIndex;mxGuide.prototype.getGuideColor=function(b,d){return null==b.cell?"#ffa500":mxConstants.GUIDE_COLOR};this.graphHandler.createPreviewShape=function(b){this.previewColor="#000000"==this.graph.background?"#ffffff":mxGraphHandler.prototype.previewColor;
+return mxGraphHandler.prototype.createPreviewShape.apply(this,arguments)};var n=this.graphHandler.getCells;this.graphHandler.getCells=function(b){for(var d=n.apply(this,arguments),g=new mxDictionary,c=[],e=0;e<d.length;e++){var f=this.graph.isTableCell(b)&&this.graph.isTableCell(d[e])&&this.graph.isCellSelected(d[e])?this.graph.model.getParent(d[e]):this.graph.isTableRow(b)&&this.graph.isTableRow(d[e])&&this.graph.isCellSelected(d[e])?d[e]:this.graph.getCompositeParent(d[e]);null==f||g.get(f)||(g.put(f,
+!0),c.push(f))}return c};var u=this.graphHandler.start;this.graphHandler.start=function(b,d,g,c){var e=!1;this.graph.isTableCell(b)&&(this.graph.isCellSelected(b)?e=!0:b=this.graph.model.getParent(b));e||this.graph.isTableRow(b)&&this.graph.isCellSelected(b)||(b=this.graph.getCompositeParent(b));u.apply(this,arguments)};this.connectionHandler.createTargetVertex=function(b,d){d=this.graph.getCompositeParent(d);return mxConnectionHandler.prototype.createTargetVertex.apply(this,arguments)};var v=new mxRubberband(this);
+this.getRubberband=function(){return v};var y=(new Date).getTime(),x=0,F=this.connectionHandler.mouseMove;this.connectionHandler.mouseMove=function(){var b=this.currentState;F.apply(this,arguments);b!=this.currentState?(y=(new Date).getTime(),x=0):x=(new Date).getTime()-y};var H=this.connectionHandler.isOutlineConnectEvent;this.connectionHandler.isOutlineConnectEvent=function(b){return null!=this.currentState&&b.getState()==this.currentState&&2E3<x||(null==this.currentState||"0"!=mxUtils.getValue(this.currentState.style,
+"outlineConnect","1"))&&H.apply(this,arguments)};var z=this.isToggleEvent;this.isToggleEvent=function(b){return z.apply(this,arguments)||!mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b)};var D=v.isForceRubberbandEvent;v.isForceRubberbandEvent=function(b){return D.apply(this,arguments)&&!mxEvent.isShiftDown(b.getEvent())&&!mxEvent.isControlDown(b.getEvent())||mxClient.IS_CHROMEOS&&mxEvent.isShiftDown(b.getEvent())||mxUtils.hasScrollbars(this.graph.container)&&mxClient.IS_FF&&mxClient.IS_WIN&&null==b.getState()&&
+mxEvent.isTouchEvent(b.getEvent())};var N=null;this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.isEnabled()&&(N=this.container.style.cursor,this.container.style.cursor="move")}));this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.isEnabled()&&(this.container.style.cursor=N)}));this.popupMenuHandler.autoExpand=!0;this.popupMenuHandler.isSelectOnPopup=function(b){return mxEvent.isMouseEvent(b.getEvent())};var E=this.click;this.click=
+function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);if(this.isEnabled()&&!d||b.isConsumed())return E.apply(this,arguments);var g=d?b.sourceState.cell:b.getCell();null!=g&&(g=this.getClickableLinkForCell(g),null!=g&&(this.isCustomLink(g)?this.customLinkClicked(g):this.openLink(g)));this.isEnabled()&&d&&this.clearSelection()};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};var J=this.tooltipHandler.show;this.tooltipHandler.show=function(){J.apply(this,
+arguments);if(null!=this.div)for(var b=this.div.getElementsByTagName("a"),d=0;d<b.length;d++)null!=b[d].getAttribute("href")&&null==b[d].getAttribute("target")&&b[d].setAttribute("target","_blank")};this.tooltipHandler.getStateForEvent=function(b){return b.sourceState};this.getCursorForMouseEvent=function(b){var d=null==b.state&&null!=b.sourceState&&this.isCellLocked(b.sourceState.cell);return this.getCursorForCell(d?b.sourceState.cell:b.getCell())};var C=this.getCursorForCell;this.getCursorForCell=
+function(b){if(!this.isEnabled()||this.isCellLocked(b)){if(null!=this.getClickableLinkForCell(b))return"pointer";if(this.isCellLocked(b))return"default"}return C.apply(this,arguments)};this.selectRegion=function(b,d){var g=mxEvent.isAltDown(d)?b:null,g=this.getCells(b.x,b.y,b.width,b.height,null,null,g,function(b){return"1"==mxUtils.getValue(b.style,"locked","0")},!0);if(this.isToggleEvent(d))for(var c=0;c<g.length;c++)this.selectCellForEvent(g[c],d);else this.selectCellsForEvent(g,d);return g};var K=
+this.graphHandler.shouldRemoveCellsFromParent;this.graphHandler.shouldRemoveCellsFromParent=function(b,d,g){return this.graph.isCellSelected(b)?!1:K.apply(this,arguments)};this.isCellLocked=function(b){for(;null!=b;){if("1"==mxUtils.getValue(this.getCurrentCellStyle(b),"locked","0"))return!0;b=this.model.getParent(b)}return!1};var L=null;this.addListener(mxEvent.FIRE_MOUSE_EVENT,mxUtils.bind(this,function(b,d){if("mouseDown"==d.getProperty("eventName")){var g=d.getProperty("event").getState();L=null==
+g||this.isSelectionEmpty()||this.isCellSelected(g.cell)?null:this.getSelectionCells()}}));this.addListener(mxEvent.TAP_AND_HOLD,mxUtils.bind(this,function(b,d){if(!mxEvent.isMultiTouchEvent(d)){var g=d.getProperty("event"),c=d.getProperty("cell");null==c?(g=mxUtils.convertPoint(this.container,mxEvent.getClientX(g),mxEvent.getClientY(g)),v.start(g.x,g.y)):null!=L?this.addSelectionCells(L):1<this.getSelectionCount()&&this.isCellSelected(c)&&this.removeSelectionCell(c);L=null;d.consume()}}));this.connectionHandler.selectCells=
+function(b,d){this.graph.setSelectionCell(d||b)};this.connectionHandler.constraintHandler.isStateIgnored=function(b,d){var g=b.view.graph;return d&&(g.isCellSelected(b.cell)||g.isTableRow(b.cell)&&g.selectionCellsHandler.isHandled(g.model.getParent(b.cell)))};this.selectionModel.addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){var b=this.connectionHandler.constraintHandler;null!=b.currentFocus&&b.isStateIgnored(b.currentFocus,!0)&&(b.currentFocus=null,b.constraints=null,b.destroyIcons());b.destroyFocusHighlight()}));
+Graph.touchStyle&&this.initTouch();var Z=this.updateMouseEvent;this.updateMouseEvent=function(b){b=Z.apply(this,arguments);null!=b.state&&this.isCellLocked(b.getCell())&&(b.state=null);return b}}this.currentTranslate=new mxPoint(0,0)};Graph.touchStyle=mxClient.IS_TOUCH||mxClient.IS_FF&&mxClient.IS_WIN||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints||null==window.urlParams||"1"==urlParams.touch;
+Graph.fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList&&(null==window.urlParams||"0"!=urlParams.filesupport);Graph.translateDiagram="1"==urlParams["translate-diagram"];Graph.diagramLanguage=null!=urlParams["diagram-language"]?urlParams["diagram-language"]:mxClient.language;Graph.lineJumpsEnabled=!0;Graph.defaultJumpSize=6;Graph.zoomWheel=!1;Graph.minTableColumnWidth=20;Graph.minTableRowHeight=20;Graph.foreignObjectWarningText="Viewer does not support full SVG 1.1";
+Graph.foreignObjectWarningLink="https://www.diagrams.net/doc/faq/svg-export-text-problems";Graph.xmlDeclaration='<?xml version="1.0" encoding="UTF-8"?>';Graph.svgDoctype='<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';Graph.svgFileComment="\x3c!-- Do not edit this file with editors other than diagrams.net --\x3e";Graph.pasteStyles="rounded shadow dashed dashPattern fontFamily fontSource fontSize fontColor fontStyle align verticalAlign strokeColor strokeWidth fillColor gradientColor swimlaneFillColor textOpacity gradientDirection glass labelBackgroundColor labelBorderColor opacity spacing spacingTop spacingLeft spacingBottom spacingRight endFill endArrow endSize targetPerimeterSpacing startFill startArrow startSize sourcePerimeterSpacing arcSize comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle".split(" ");
Graph.createOffscreenGraph=function(b){var c=new Graph(document.createElement("div"));c.stylesheet.styles=mxUtils.clone(b.styles);c.resetViewOnRootChange=!1;c.setConnectable(!1);c.gridEnabled=!1;c.autoScroll=!1;c.setTooltips(!1);c.setEnabled(!1);c.container.style.visibility="hidden";c.container.style.position="absolute";c.container.style.overflow="hidden";c.container.style.height="1px";c.container.style.width="1px";return c};
Graph.createSvgImage=function(b,c,e,k,f){e=unescape(encodeURIComponent(Graph.svgDoctype+'<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+b+'px" height="'+c+'px" '+(null!=k&&null!=f?'viewBox="0 0 '+k+" "+f+'" ':"")+'version="1.1">'+e+"</svg>"));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),b,c)};
Graph.zapGremlins=function(b){for(var c=0,e=[],k=0;k<b.length;k++){var f=b.charCodeAt(k);(32<=f||9==f||10==f||13==f)&&65535!=f&&65534!=f||(e.push(b.substring(c,k)),c=k+1)}0<c&&c<b.length&&e.push(b.substring(c));return 0==e.length?b:e.join("")};Graph.stringToBytes=function(b){for(var c=Array(b.length),e=0;e<b.length;e++)c[e]=b.charCodeAt(e);return c};Graph.bytesToString=function(b){for(var c=Array(b.length),e=0;e<b.length;e++)c[e]=String.fromCharCode(b[e]);return c.join("")};
@@ -2494,15 +2496,16 @@ HoverIcons.prototype.update=function(b,c,e){if(!this.graph.connectionArrowsEnabl
this.graph.isMouseDown||this.graph.panningHandler.isActive()||(this.prev=b,this.update(b,c,e))}),this.updateDelay+10))):null!=this.startTime&&(k=(new Date).getTime()-this.startTime);this.setDisplay("");null!=this.currentState&&this.currentState!=b&&k<this.activationDelay&&null!=this.bbox&&!mxUtils.contains(this.bbox,c,e)?this.reset(!1):(null!=this.currentState||k>this.activationDelay)&&this.currentState!=b&&(k>this.updateDelay&&null!=b||null==this.bbox||null==c||null==e||!mxUtils.contains(this.bbox,
c,e))&&(null!=b&&this.graph.isEnabled()?(this.removeNodes(),this.setCurrentState(b),this.repaint(),this.graph.connectionHandler.constraintHandler.currentFocus!=b&&this.graph.connectionHandler.constraintHandler.reset()):this.reset())}};
HoverIcons.prototype.setCurrentState=function(b){"eastwest"!=b.style.portConstraint&&(this.graph.container.appendChild(this.arrowUp),this.graph.container.appendChild(this.arrowDown));this.graph.container.appendChild(this.arrowRight);this.graph.container.appendChild(this.arrowLeft);this.currentState=b};Graph.prototype.createParent=function(b,c,e,k,f){b=this.cloneCell(b);for(var p=0;p<e;p++){var t=this.cloneCell(c),d=this.getCellGeometry(t);null!=d&&(d.x+=p*k,d.y+=p*f);b.insert(t)}return b};
-Graph.prototype.createTable=function(b,c,e,k,f,p,t,d,g){e=null!=e?e:60;k=null!=k?k:40;p=null!=p?p:30;d=null!=d?d:"shape=partialRectangle;collapsible=0;dropTarget=0;pointerEvents=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";g=null!=g?g:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;";return this.createParent(this.createVertex(null,null,null!=f?f:"",0,0,c*e,
-b*k+(null!=f?p:0),null!=t?t:"shape=table;startSize="+(null!=f?p:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,c*e,k,d),this.createVertex(null,null,"",0,0,e,k,g),c,e,0),b,0,k)};Graph.prototype.setTableValues=function(b,c,e){for(var k=this.model.getChildCells(b,!0),f=0;f<k.length;f++)if(null!=e&&(k[f].value=e[f]),null!=c)for(var p=this.model.getChildCells(k[f],!0),t=0;t<p.length;t++)null!=c[f][t]&&(p[t].value=c[f][t]);return b};
-Graph.prototype.createCrossFunctionalSwimlane=function(b,c,e,k,f,p,t,d,g){e=null!=e?e:120;k=null!=k?k:120;var l=null==f?0:40;t=null!=t?t:"swimlane;horizontal=0;fontStyle=0;points=[[0,0.5],[1,0.5]];fillColor=none;strokeColor=none;portConstraint=eastwest;startSize="+l+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";d=null!=d?d:"swimlane;fontStyle=0;connectable=0;fillColor=none;startSize=40;collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";g=null!=g?g:"swimlane;fontStyle=0;connectable=0;fillColor=none;startSize="+
-(null==f?"40":"0")+";collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;";f=this.createVertex(null,null,null!=f?f:"",0,0,c*e,b*k,null!=p?p:"shape=table;childLayout=tableLayout;startSize="+l+";"+(null==f?"fillColor=none;":"")+"collapsible=0;recursiveResize=0;expand=0;pointerEvents=0;");p=mxUtils.getValue(this.getCellStyle(f),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);f.geometry.width+=p;f.geometry.height+=p;t=this.createVertex(null,null,"",0,p,c*e+p,k,t);f.insert(this.createParent(t,
-this.createVertex(null,null,"",p,0,e,k,d),c,e,0));return 1<b?(t.geometry.y=k+p,this.createParent(f,this.createParent(t,this.createVertex(null,null,"",p,0,e,k,g),c,e,0),b-1,0,k)):f};
-Graph.prototype.visitTableCells=function(b,c){for(var e=null,k=this.model.getChildCells(b,!0),f=this.getActualStartSize(b,!0),p=0;p<k.length;p++){for(var t=this.getActualStartSize(k[p],!0),d=this.model.getChildCells(k[p],!0),g=null,l=[],q=0;q<d.length;q++){var m=this.getCellGeometry(d[q]),n={cell:d[q],rospan:1,colspan:1,row:p,col:q,geo:m},m=null!=m.alternateBounds?m.alternateBounds:m;n.point=new mxPoint(m.width+(null!=g?g.point.x:f.x+t.x),m.height+(null!=e&&null!=e[0]?e[0].point.y:f.y+t.y));n.actual=
-n;null!=e&&null!=e[q]&&1<e[q].rowspan?(n.rowspan=e[q].rowspan-1,n.colspan=e[q].colspan,n.actual=e[q].actual):null!=g&&1<g.colspan?(n.rowspan=g.rowspan,n.colspan=g.colspan-1,n.actual=g.actual):(g=this.getCurrentCellStyle(d[q],!0),null!=g&&(n.rowspan=parseInt(g.rowspan||1),n.colspan=parseInt(g.colspan||1)));c(n,d.length,k.length,f.x+t.x,f.y+t.y);l.push(n);g=n}e=l}};
-Graph.prototype.getTableLines=function(b,c,e){var k=[],f=[];(c||e)&&this.visitTableCells(b,mxUtils.bind(this,function(b,t,d,g,l){c&&b.row<d-1&&(null==k[b.row]&&(k[b.row]=[new mxPoint(g,b.point.y)]),1<b.rowspan&&k[b.row].push(null),k[b.row].push(b.point));e&&b.col<t-1&&(null==f[b.col]&&(f[b.col]=[new mxPoint(b.point.x,l)]),1<b.colspan&&f[b.col].push(null),f[b.col].push(b.point))}));return k.concat(f)};Graph.prototype.isTableCell=function(b){return this.model.isVertex(b)&&this.isTableRow(this.model.getParent(b))};
-Graph.prototype.isTableRow=function(b){return this.model.isVertex(b)&&this.isTable(this.model.getParent(b))};Graph.prototype.isTable=function(b){b=this.getCellStyle(b);return null!=b&&"tableLayout"==b.childLayout};Graph.prototype.isStack=function(b){b=this.getCellStyle(b);return null!=b&&"stackLayout"==b.childLayout};Graph.prototype.isStackChild=function(b){return this.model.isVertex(b)&&this.isStack(this.model.getParent(b))};
+Graph.prototype.createTable=function(b,c,e,k,f,p,t,d,g){e=null!=e?e:60;k=null!=k?k:40;p=null!=p?p:30;d=null!=d?d:"shape=partialRectangle;collapsible=0;dropTarget=0;fillColor=none;top=0;left=0;bottom=0;right=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;";g=null!=g?g:"shape=partialRectangle;html=1;whiteSpace=wrap;connectable=0;overflow=hidden;fillColor=none;top=0;left=0;bottom=0;right=0;pointerEvents=1;";return this.createParent(this.createVertex(null,null,null!=f?f:"",0,0,c*e,b*k+(null!=f?p:
+0),null!=t?t:"shape=table;startSize="+(null!=f?p:"0")+";container=1;collapsible=0;childLayout=tableLayout;"),this.createParent(this.createVertex(null,null,"",0,0,c*e,k,d),this.createVertex(null,null,"",0,0,e,k,g),c,e,0),b,0,k)};Graph.prototype.setTableValues=function(b,c,e){for(var k=this.model.getChildCells(b,!0),f=0;f<k.length;f++)if(null!=e&&(k[f].value=e[f]),null!=c)for(var p=this.model.getChildCells(k[f],!0),t=0;t<p.length;t++)null!=c[f][t]&&(p[t].value=c[f][t]);return b};
+Graph.prototype.createCrossFunctionalSwimlane=function(b,c,e,k,f,p,t,d,g){e=null!=e?e:120;k=null!=k?k:120;t=null!=t?t:"swimlane;horizontal=0;swimlaneHead=0;swimlaneBody=0;fontStyle=0;fillColor=none;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;startSize=40;collapsible=0;recursiveResize=0;expand=0;";d=null!=d?d:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=40;collapsible=0;recursiveResize=0;expand=0;";g=null!=g?g:"swimlane;swimlaneHead=0;swimlaneBody=0;fontStyle=0;connectable=0;fillColor=none;startSize=0;collapsible=0;recursiveResize=0;expand=0;";
+f=this.createVertex(null,null,null!=f?f:"",0,0,c*e,b*k,null!=p?p:"shape=table;childLayout=tableLayout;"+(null==f?"startSize=0;fillColor=none;":"startSize=40;")+"collapsible=0;recursiveResize=0;expand=0;");p=mxUtils.getValue(this.getCellStyle(f),mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);f.geometry.width+=p;f.geometry.height+=p;t=this.createVertex(null,null,"",0,p,c*e+p,k,t);f.insert(this.createParent(t,this.createVertex(null,null,"",p,0,e,k,d),c,e,0));return 1<b?(t.geometry.y=k+p,
+this.createParent(f,this.createParent(t,this.createVertex(null,null,"",p,0,e,k,g),c,e,0),b-1,0,k)):f};
+Graph.prototype.visitTableCells=function(b,c){for(var e=null,k=this.model.getChildCells(b,!0),f=this.getActualStartSize(b,!0),p=0;p<k.length;p++){for(var t=this.getActualStartSize(k[p],!0),d=this.model.getChildCells(k[p],!0),g=this.getCellStyle(k[p],!0),l=null,q=[],m=0;m<d.length;m++){var n=this.getCellGeometry(d[m]),u={cell:d[m],rospan:1,colspan:1,row:p,col:m,geo:n},n=null!=n.alternateBounds?n.alternateBounds:n;u.point=new mxPoint(n.width+(null!=l?l.point.x:f.x+t.x),n.height+(null!=e&&null!=e[0]?
+e[0].point.y:f.y+t.y));u.actual=u;null!=e&&null!=e[m]&&1<e[m].rowspan?(u.rowspan=e[m].rowspan-1,u.colspan=e[m].colspan,u.actual=e[m].actual):null!=l&&1<l.colspan?(u.rowspan=l.rowspan,u.colspan=l.colspan-1,u.actual=l.actual):(l=this.getCurrentCellStyle(d[m],!0),null!=l&&(u.rowspan=parseInt(l.rowspan||1),u.colspan=parseInt(l.colspan||1)));l=1==mxUtils.getValue(g,mxConstants.STYLE_SWIMLANE_HEAD,1)&&mxUtils.getValue(g,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE;c(u,d.length,k.length,
+f.x+(l?t.x:0),f.y+(l?t.y:0));q.push(u);l=u}e=q}};Graph.prototype.getTableLines=function(b,c,e){var k=[],f=[];(c||e)&&this.visitTableCells(b,mxUtils.bind(this,function(b,t,d,g,l){c&&b.row<d-1&&(null==k[b.row]&&(k[b.row]=[new mxPoint(g,b.point.y)]),1<b.rowspan&&k[b.row].push(null),k[b.row].push(b.point));e&&b.col<t-1&&(null==f[b.col]&&(f[b.col]=[new mxPoint(b.point.x,l)]),1<b.colspan&&f[b.col].push(null),f[b.col].push(b.point))}));return k.concat(f)};
+Graph.prototype.isTableCell=function(b){return this.model.isVertex(b)&&this.isTableRow(this.model.getParent(b))};Graph.prototype.isTableRow=function(b){return this.model.isVertex(b)&&this.isTable(this.model.getParent(b))};Graph.prototype.isTable=function(b){b=this.getCellStyle(b);return null!=b&&"tableLayout"==b.childLayout};Graph.prototype.isStack=function(b){b=this.getCellStyle(b);return null!=b&&"stackLayout"==b.childLayout};
+Graph.prototype.isStackChild=function(b){return this.model.isVertex(b)&&this.isStack(this.model.getParent(b))};
Graph.prototype.setTableRowHeight=function(b,c,e){e=null!=e?e:!0;var k=this.getModel();k.beginUpdate();try{var f=this.getCellGeometry(b);if(null!=f){f=f.clone();f.height+=c;k.setGeometry(b,f);var p=k.getParent(b),t=k.getChildCells(p,!0);if(!e){var d=mxUtils.indexOf(t,b);if(d<t.length-1){var g=t[d+1],l=this.getCellGeometry(g);null!=l&&(l=l.clone(),l.y+=c,l.height-=c,k.setGeometry(g,l))}}var q=this.getCellGeometry(p);null!=q&&(e||(e=b==t[t.length-1]),e&&(q=q.clone(),q.height+=c,k.setGeometry(p,q)))}}finally{k.endUpdate()}};
Graph.prototype.setTableColumnWidth=function(b,c,e){e=null!=e?e:!1;var k=this.getModel(),f=k.getParent(b),p=k.getParent(f),t=k.getChildCells(f,!0);b=mxUtils.indexOf(t,b);var d=b==t.length-1;k.beginUpdate();try{for(var g=k.getChildCells(p,!0),l=0;l<g.length;l++){var f=g[l],t=k.getChildCells(f,!0),q=t[b],m=this.getCellGeometry(q);null!=m&&(m=m.clone(),m.width+=c,null!=m.alternateBounds&&(m.alternateBounds.width+=c),k.setGeometry(q,m));b<t.length-1&&(q=t[b+1],m=this.getCellGeometry(q),null!=m&&(m=m.clone(),
m.x+=c,e||(m.width-=c,null!=m.alternateBounds&&(m.alternateBounds.width-=c)),k.setGeometry(q,m)))}if(d||e){var n=this.getCellGeometry(p);null!=n&&(n=n.clone(),n.width+=c,k.setGeometry(p,n))}}finally{k.endUpdate()}};function TableLayout(b){mxGraphLayout.call(this,b)}TableLayout.prototype=new mxStackLayout;TableLayout.prototype.constructor=TableLayout;TableLayout.prototype.isHorizontal=function(){return!1};TableLayout.prototype.isVertexIgnored=function(b){return!this.graph.getModel().isVertex(b)||!this.graph.isCellVisible(b)};
@@ -2523,8 +2526,8 @@ p[E].y)||g}t=d[d.length-1];g=e(0,t.x,t.y)||g}b.routedPoints=c;return g}return!1}
"jumpSize",Graph.defaultJumpSize))-2)/2+this.strokewidth,f=mxUtils.getValue(this.style,"jumpStyle","none"),l=!0,k=null,q=null,m=[],n=null;b.begin();for(var t=0;t<this.state.routedPoints.length;t++){var E=this.state.routedPoints[t],J=new mxPoint(E.x/this.scale,E.y/this.scale);0==t?J=d[0]:t==this.state.routedPoints.length-1&&(J=d[d.length-1]);var C=!1;if(null!=k&&1==E.type){var K=this.state.routedPoints[t+1],E=K.x/this.scale-J.x,K=K.y/this.scale-J.y,E=E*E+K*K;null==n&&(n=new mxPoint(J.x-k.x,J.y-k.y),
q=Math.sqrt(n.x*n.x+n.y*n.y),0<q?(n.x=n.x*e/q,n.y=n.y*e/q):n=null);E>e*e&&0<q&&(E=k.x-J.x,K=k.y-J.y,E=E*E+K*K,E>e*e&&(C=new mxPoint(J.x-n.x,J.y-n.y),E=new mxPoint(J.x+n.x,J.y+n.y),m.push(C),this.addPoints(b,m,g,c,!1,null,l),m=0>Math.round(n.x)||0==Math.round(n.x)&&0>=Math.round(n.y)?1:-1,l=!1,"sharp"==f?(b.lineTo(C.x-n.y*m,C.y+n.x*m),b.lineTo(E.x-n.y*m,E.y+n.x*m),b.lineTo(E.x,E.y)):"line"==f?(b.moveTo(C.x+n.y*m,C.y-n.x*m),b.lineTo(C.x-n.y*m,C.y+n.x*m),b.moveTo(E.x-n.y*m,E.y+n.x*m),b.lineTo(E.x+n.y*
m,E.y-n.x*m),b.moveTo(E.x,E.y)):"arc"==f?(m*=1.3,b.curveTo(C.x-n.y*m,C.y+n.x*m,E.x-n.y*m,E.y+n.x*m,E.x,E.y)):(b.moveTo(E.x,E.y),l=!0),m=[E],C=!0))}else n=null;C||(m.push(J),k=J)}this.addPoints(b,m,g,c,!1,null,l);b.stroke()}};var t=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(b,d,g,c){return null!=d&&"centerPerimeter"==d.style[mxConstants.STYLE_PERIMETER]?new mxPoint(d.getCenterX(),d.getCenterY()):t.apply(this,arguments)};var d=mxGraphView.prototype.updateFloatingTerminalPoint;
-mxGraphView.prototype.updateFloatingTerminalPoint=function(b,g,c,e){if(null==g||null==b||"1"!=g.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{g=this.getTerminalPort(b,g,e);var f=this.getNextPoint(b,c,e),l=this.graph.isOrthogonal(b),k=mxUtils.toRadians(Number(g.style[mxConstants.STYLE_ROTATION]||"0")),q=new mxPoint(g.getCenterX(),g.getCenterY());if(0!=k)var m=Math.cos(-k),n=Math.sin(-k),f=mxUtils.getRotatedPoint(f,m,n,q);m=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
-0);m+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);f=this.getPerimeterPoint(g,f,0==k&&l,m);0!=k&&(m=Math.cos(k),n=Math.sin(k),f=mxUtils.getRotatedPoint(f,m,n,q));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,g,c,e,f),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,g,c,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);c=g=null;if(null!=b)for(var f=0;f<b.length;f++){var l=this.graph.getConnectionPoint(d,
+mxGraphView.prototype.updateFloatingTerminalPoint=function(b,g,c,e){if(null==g||null==b||"1"!=g.style.snapToPoint&&"1"!=b.style.snapToPoint)d.apply(this,arguments);else{g=this.getTerminalPort(b,g,e);var f=this.getNextPoint(b,c,e),l=this.graph.isOrthogonal(b),k=mxUtils.toRadians(Number(g.style[mxConstants.STYLE_ROTATION]||"0")),m=new mxPoint(g.getCenterX(),g.getCenterY());if(0!=k)var q=Math.cos(-k),n=Math.sin(-k),f=mxUtils.getRotatedPoint(f,q,n,m);q=parseFloat(b.style[mxConstants.STYLE_PERIMETER_SPACING]||
+0);q+=parseFloat(b.style[e?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);f=this.getPerimeterPoint(g,f,0==k&&l,q);0!=k&&(q=Math.cos(k),n=Math.sin(k),f=mxUtils.getRotatedPoint(f,q,n,m));b.setAbsoluteTerminalPoint(this.snapToAnchorPoint(b,g,c,e,f),e)}};mxGraphView.prototype.snapToAnchorPoint=function(b,d,g,c,e){if(null!=d&&null!=b){b=this.graph.getAllConnectionConstraints(d);c=g=null;if(null!=b)for(var f=0;f<b.length;f++){var l=this.graph.getConnectionPoint(d,
b[f]);if(null!=l){var k=(l.x-e.x)*(l.x-e.x)+(l.y-e.y)*(l.y-e.y);if(null==c||k<c)g=l,c=k}}null!=g&&(e=g)}return e};var g=mxStencil.prototype.evaluateTextAttribute;mxStencil.prototype.evaluateTextAttribute=function(b,d,c){var e=g.apply(this,arguments);"1"==b.getAttribute("placeholders")&&null!=c.state&&(e=c.state.view.graph.replacePlaceholders(c.state.cell,e));return e};var l=mxCellRenderer.prototype.createShape;mxCellRenderer.prototype.createShape=function(b){if(null!=b.style&&"undefined"!==typeof pako){var d=
mxUtils.getValue(b.style,mxConstants.STYLE_SHAPE,null);if(null!=d&&"string"===typeof d&&"stencil("==d.substring(0,8))try{var g=d.substring(8,d.length-1),c=mxUtils.parseXml(Graph.decompress(g));return new mxShape(new mxStencil(c.documentElement))}catch(v){null!=window.console&&console.log("Error in shape: "+v)}}return l.apply(this,arguments)}})();mxStencilRegistry.libraries={};mxStencilRegistry.dynamicLoading=!0;mxStencilRegistry.allowEval=!0;mxStencilRegistry.packages=[];
mxStencilRegistry.filesLoaded={};
@@ -2546,16 +2549,16 @@ function(){for(var b="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",
Graph.prototype.getPagePadding=function(){return new mxPoint(0,0)};Graph.prototype.loadStylesheet=function(){var b=null!=this.themes?this.themes[this.defaultThemeName]:mxStyleRegistry.dynamicLoading?mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement():null;null!=b&&(new mxCodec(b.ownerDocument)).decode(b,this.getStylesheet())};Graph.prototype.createCellLookup=function(b,d){d=null!=d?d:{};for(var g=0;g<b.length;g++){var c=b[g];d[mxObjectIdentity.get(c)]=c.getId();for(var e=this.model.getChildCount(c),
f=0;f<e;f++)this.createCellLookup([this.model.getChildAt(c,f)],d)}return d};Graph.prototype.createCellMapping=function(b,d,g){g=null!=g?g:{};for(var c in b){var e=d[c];null==g[e]&&(g[e]=b[c].getId()||"")}return g};Graph.prototype.importGraphModel=function(b,d,g,c){d=null!=d?d:0;g=null!=g?g:0;var e=new mxCodec(b.ownerDocument),f=new mxGraphModel;e.decode(b,f);b=[];var e={},l={},k=f.getChildren(this.cloneCell(f.root,this.isCloneInvalidEdges(),e));if(null!=k){var q=this.createCellLookup([f.root]),k=
k.slice();this.model.beginUpdate();try{if(1!=k.length||this.isCellLocked(this.getDefaultParent()))for(f=0;f<k.length;f++)m=this.model.getChildren(this.moveCells([k[f]],d,g,!1,this.model.getRoot())[0]),null!=m&&(b=b.concat(m));else{var m=f.getChildren(k[0]);null!=m&&(b=this.moveCells(m,d,g,!1,this.getDefaultParent()),l[f.getChildAt(f.root,0).getId()]=this.getDefaultParent().getId())}if(null!=b&&(this.createCellMapping(e,q,l),this.updateCustomLinks(l,b),c)){this.isGridEnabled()&&(d=this.snap(d),g=this.snap(g));
-var n=this.getBoundingBoxFromGeometry(b,!0);null!=n&&this.moveCells(b,d-n.x,g-n.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},g=this.cloneCells(b,null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],!0);for(var f=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<g.length;e++){l.add(k,g[e]);var q=this.view.getState(b[e]);if(null!=q){var m=this.getCellGeometry(g[e]);null!=m&&m.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&
-(m.offset=null,m.relative=!1,m.x=q.x/q.view.scale-q.view.translate.x,m.y=q.y/q.view.scale-q.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),g);return f.encode(l)};Graph.prototype.isSwimlane=function(b,d){if(null!=b&&this.model.getParent(b)!=this.model.getRoot()&&!this.model.isEdge(b)){var g=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE];return g==mxConstants.SHAPE_SWIMLANE||"table"==g}return!1};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=
-function(b){var g=this.model.getParent(b);if(null!=g){var c=this.getCurrentCellStyle(g);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==g||!this.isTable(g))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,e,f,l,k,q){null==q&&(q=this.model.getParent(b),this.isTable(q)||this.isTableRow(q))&&(q=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[b,d,c,e,f,l,k,q]);this.model.setValue(c,"");var m=this.getChildCells(c,
-!0);for(d=0;d<m.length;d++){var n=this.getCellGeometry(m[d]);null!=n&&n.relative&&0<n.x&&this.model.remove(m[d])}var G=this.getChildCells(b,!0);for(d=0;d<G.length;d++)n=this.getCellGeometry(G[d]),null!=n&&n.relative&&0>=n.x&&this.model.remove(G[d]);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,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
+var n=this.getBoundingBoxFromGeometry(b,!0);null!=n&&this.moveCells(b,d-n.x,g-n.y)}}finally{this.model.endUpdate()}}return b};Graph.prototype.encodeCells=function(b){for(var d={},g=this.cloneCells(b,null,d),c=new mxDictionary,e=0;e<b.length;e++)c.put(b[e],!0);for(var f=new mxCodec,l=new mxGraphModel,k=l.getChildAt(l.getRoot(),0),e=0;e<g.length;e++){l.add(k,g[e]);var m=this.view.getState(b[e]);if(null!=m){var q=this.getCellGeometry(g[e]);null!=q&&q.relative&&!this.model.isEdge(b[e])&&null==c.get(this.model.getParent(b[e]))&&
+(q.offset=null,q.relative=!1,q.x=m.x/m.view.scale-m.view.translate.x,q.y=m.y/m.view.scale-m.view.translate.y)}}this.updateCustomLinks(this.createCellMapping(d,this.createCellLookup(b)),g);return f.encode(l)};Graph.prototype.isSwimlane=function(b,d){var g=null;null==b||this.model.isEdge(b)||this.model.getParent(b)==this.model.getRoot()||(g=this.getCurrentCellStyle(b,d)[mxConstants.STYLE_SHAPE]);return g==mxConstants.SHAPE_SWIMLANE||"table"==g};var d=Graph.prototype.isExtendParent;Graph.prototype.isExtendParent=
+function(b){var g=this.model.getParent(b);if(null!=g){var c=this.getCurrentCellStyle(g);if(null!=c.expand)return"0"!=c.expand}return d.apply(this,arguments)&&(null==g||!this.isTable(g))};var g=Graph.prototype.splitEdge;Graph.prototype.splitEdge=function(b,d,c,e,f,l,k,m){null==m&&(m=this.model.getParent(b),this.isTable(m)||this.isTableRow(m))&&(m=this.getCellAt(l,k,null,!0,!1));c=null;this.model.beginUpdate();try{c=g.apply(this,[b,d,c,e,f,l,k,m]);this.model.setValue(c,"");var q=this.getChildCells(c,
+!0);for(d=0;d<q.length;d++){var n=this.getCellGeometry(q[d]);null!=n&&n.relative&&0<n.x&&this.model.remove(q[d])}var G=this.getChildCells(b,!0);for(d=0;d<G.length;d++)n=this.getCellGeometry(G[d]),null!=n&&n.relative&&0>=n.x&&this.model.remove(G[d]);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,[b]);this.setCellStyles(mxConstants.STYLE_STARTARROW,
mxConstants.NONE,[b]);var ha=this.model.getTerminal(c,!1);if(null!=ha){var v=this.getCurrentCellStyle(ha);null!=v&&"1"==v.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[b]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[b]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[c]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[c]))}}finally{this.model.endUpdate()}return c};var l=Graph.prototype.selectCell;Graph.prototype.selectCell=function(b,d,g){if(d||g)l.apply(this,arguments);
else{var c=this.getSelectionCell(),e=null,f=[],k=mxUtils.bind(this,function(d){if(null!=this.view.getState(d)&&(this.model.isVertex(d)||this.model.isEdge(d)))if(f.push(d),d==c)e=f.length-1;else if(b&&null==c&&0<f.length||null!=e&&b&&f.length>e||!b&&0<e)return;for(var g=0;g<this.model.getChildCount(d);g++)k(this.model.getChildAt(d,g))});k(this.model.root);0<f.length&&(e=null!=e?mxUtils.mod(e+(b?1:-1),f.length):0,this.setSelectionCell(f[e]))}};Graph.prototype.swapUmlLifelines=function(b,d){var g=!1;
if(null!=d&&1==b.length){var c=this.view.getState(d),e=this.view.getState(b[0]);if(null!=c&&null!=e&&"umlLifeline"==c.style.shape&&"umlLifeline"==e.style.shape&&(e=this.getCellGeometry(d),c=this.getCellGeometry(b[0]),null!=e&&null!=c)){g=e.clone();e=c.clone();e.x=g.x;e.y=g.y;g.x=c.x;g.y=c.y;this.model.beginUpdate();try{this.model.setGeometry(d,g),this.model.setGeometry(b[0],e)}finally{this.model.endUpdate()}g=!0}}return g};var q=Graph.prototype.moveCells;Graph.prototype.moveCells=function(b,d,g,c,
e,f,l){if(!c&&this.swapUmlLifelines(b,e))return b;l=null!=l?l:{};if(this.isTable(e)){for(var k=[],m=0;m<b.length;m++)this.isTable(b[m])?k=k.concat(this.model.getChildCells(b[m],!0).reverse()):k.push(b[m]);b=k}this.model.beginUpdate();try{k=[];for(m=0;m<b.length;m++)if(null!=e&&this.isTableRow(b[m])){var n=this.model.getParent(b[m]),G=this.getCellGeometry(b[m]);this.isTable(n)&&k.push(n);if(null!=n&&null!=G&&this.isTable(n)&&this.isTable(e)&&(c||n!=e)){if(!c){var v=this.getCellGeometry(n);null!=v&&
-(v=v.clone(),v.height-=G.height,this.model.setGeometry(n,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=G.height,this.model.setGeometry(e,v));var ha=this.model.getChildCells(e,!0);if(0<ha.length){b[m]=c?this.cloneCell(b[m]):b[m];var u=this.model.getChildCells(b[m],!0),p=this.model.getChildCells(ha[0],!0),B=p.length-u.length;if(0<B)for(var x=0;x<B;x++){var I=this.cloneCell(u[u.length-1]);null!=I&&(I.value="",this.model.add(b[m],I))}else if(0>B)for(x=0;x>B;x--)this.model.remove(u[u.length+
-x-1]);u=this.model.getChildCells(b[m],!0);for(x=0;x<p.length;x++){var P=this.getCellGeometry(p[x]),t=this.getCellGeometry(u[x]);null!=P&&null!=t&&(t=t.clone(),t.width=P.width,this.model.setGeometry(u[x],t))}}}}for(var ua=q.apply(this,arguments),m=0;m<k.length;m++)!c&&this.model.contains(k[m])&&0==this.model.getChildCount(k[m])&&this.model.remove(k[m]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),ua)}finally{this.model.endUpdate()}return ua};var m=Graph.prototype.removeCells;
+(v=v.clone(),v.height-=G.height,this.model.setGeometry(n,v))}v=this.getCellGeometry(e);null!=v&&(v=v.clone(),v.height+=G.height,this.model.setGeometry(e,v));var ha=this.model.getChildCells(e,!0);if(0<ha.length){b[m]=c?this.cloneCell(b[m]):b[m];var u=this.model.getChildCells(b[m],!0),B=this.model.getChildCells(ha[0],!0),p=B.length-u.length;if(0<p)for(var x=0;x<p;x++){var I=this.cloneCell(u[u.length-1]);null!=I&&(I.value="",this.model.add(b[m],I))}else if(0>p)for(x=0;x>p;x--)this.model.remove(u[u.length+
+x-1]);u=this.model.getChildCells(b[m],!0);for(x=0;x<B.length;x++){var O=this.getCellGeometry(B[x]),t=this.getCellGeometry(u[x]);null!=O&&null!=t&&(t=t.clone(),t.width=O.width,this.model.setGeometry(u[x],t))}}}}for(var ua=q.apply(this,arguments),m=0;m<k.length;m++)!c&&this.model.contains(k[m])&&0==this.model.getChildCount(k[m])&&this.model.remove(k[m]);c&&this.updateCustomLinks(this.createCellMapping(l,this.createCellLookup(b)),ua)}finally{this.model.endUpdate()}return ua};var m=Graph.prototype.removeCells;
Graph.prototype.removeCells=function(b,d){var g=[];this.model.beginUpdate();try{for(var c=0;c<b.length;c++)if(this.isTableCell(b[c])){var e=this.model.getParent(b[c]),f=this.model.getParent(e);1==this.model.getChildCount(e)&&1==this.model.getChildCount(f)?0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f)&&g.push(f):this.labelChanged(b[c],"")}else{if(this.isTableRow(b[c])&&(f=this.model.getParent(b[c]),0>mxUtils.indexOf(b,f)&&0>mxUtils.indexOf(g,f))){for(var l=this.model.getChildCells(f,!0),k=0,q=0;q<
l.length;q++)0<=mxUtils.indexOf(b,l[q])&&k++;k==l.length&&g.push(f)}g.push(b[c])}g=m.apply(this,[g,d])}finally{this.model.endUpdate()}return g};Graph.prototype.updateCustomLinks=function(b,d,g){g=null!=g?g:new Graph;for(var c=0;c<d.length;c++)null!=d[c]&&g.updateCustomLinksForCell(b,d[c],g)};Graph.prototype.updateCustomLinksForCell=function(b,d){this.doUpdateCustomLinksForCell(b,d);for(var g=this.model.getChildCount(d),c=0;c<g;c++)this.updateCustomLinksForCell(b,this.model.getChildAt(d,c))};Graph.prototype.doUpdateCustomLinksForCell=
function(b,d){};Graph.prototype.getAllConnectionConstraints=function(b,d){if(null!=b){var g=mxUtils.getValue(b.style,"points",null);if(null!=g){var c=[];try{for(var e=JSON.parse(g),g=0;g<e.length;g++){var f=e[g];c.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(pa){}return c}if(null!=b.shape&&null!=b.shape.bounds){f=b.shape.direction;e=b.shape.bounds;g=b.shape.scale;c=e.width/g;e=e.height/g;if(f==mxConstants.DIRECTION_NORTH||
@@ -2563,8 +2566,8 @@ f==mxConstants.DIRECTION_SOUTH)f=c,c=e,e=f;g=b.shape.getConstraints(b.style,c,e)
this.setCellStyles(mxConstants.STYLE_ELBOW,d,[b])}};Graph.prototype.isValidRoot=function(b){for(var d=this.model.getChildCount(b),g=0,c=0;c<d;c++){var e=this.model.getChildAt(b,c);this.model.isVertex(e)&&(e=this.getCellGeometry(e),null==e||e.relative||g++)}return 0<g||this.isContainer(b)};Graph.prototype.isValidDropTarget=function(b,d,g){for(var c=this.getCurrentCellStyle(b),e=!0,f=!0,l=0;l<d.length&&f;l++)e=e&&this.isTable(d[l]),f=f&&this.isTableRow(d[l]);return("1"!=mxUtils.getValue(c,"part","0")||
this.isContainer(b))&&"0"!=mxUtils.getValue(c,"dropTarget","1")&&(mxGraph.prototype.isValidDropTarget.apply(this,arguments)||this.isContainer(b))&&!this.isTableRow(b)&&(!this.isTable(b)||f||e)&&!this.isCellLocked(b)};Graph.prototype.createGroupCell=function(){var b=mxGraph.prototype.createGroupCell.apply(this,arguments);b.setStyle("group");return b};Graph.prototype.isExtendParentsOnAdd=function(b){var d=mxGraph.prototype.isExtendParentsOnAdd.apply(this,arguments);if(d&&null!=b&&null!=this.layoutManager){var g=
this.model.getParent(b);null!=g&&(g=this.layoutManager.getLayout(g),null!=g&&g.constructor==mxStackLayout&&(d=!1))}return d};Graph.prototype.getPreferredSizeForCell=function(b){var d=mxGraph.prototype.getPreferredSizeForCell.apply(this,arguments);null!=d&&(d.width+=10,d.height+=4,this.gridEnabled&&(d.width=this.snap(d.width),d.height=this.snap(d.height)));return d};Graph.prototype.turnShapes=function(b,d){var g=this.getModel(),c=[];g.beginUpdate();try{for(var e=0;e<b.length;e++){var f=b[e];if(g.isEdge(f)){var l=
-g.getTerminal(f,!0),k=g.getTerminal(f,!1);g.setTerminal(f,k,!0);g.setTerminal(f,l,!1);var m=g.getGeometry(f);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var q=m.getTerminalPoint(!0),n=m.getTerminalPoint(!1);m.setTerminalPoint(q,!1);m.setTerminalPoint(n,!0);g.setGeometry(f,m);var G=this.view.getState(f),v=this.view.getState(l),u=this.view.getState(k);if(null!=G){var ha=null!=v?this.getConnectionConstraint(G,v,!0):null,p=null!=u?this.getConnectionConstraint(G,u,!1):null;this.setConnectionConstraint(f,
-l,!0,p);this.setConnectionConstraint(f,k,!1,ha);var B=mxUtils.getValue(G.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(G.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,B,[f])}c.push(f)}}else if(g.isVertex(f)&&(m=this.getCellGeometry(f),null!=m)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){m=m.clone();m.x+=m.width/
+g.getTerminal(f,!0),k=g.getTerminal(f,!1);g.setTerminal(f,k,!0);g.setTerminal(f,l,!1);var m=g.getGeometry(f);if(null!=m){m=m.clone();null!=m.points&&m.points.reverse();var q=m.getTerminalPoint(!0),n=m.getTerminalPoint(!1);m.setTerminalPoint(q,!1);m.setTerminalPoint(n,!0);g.setGeometry(f,m);var G=this.view.getState(f),v=this.view.getState(l),u=this.view.getState(k);if(null!=G){var ha=null!=v?this.getConnectionConstraint(G,v,!0):null,B=null!=u?this.getConnectionConstraint(G,u,!1):null;this.setConnectionConstraint(f,
+l,!0,B);this.setConnectionConstraint(f,k,!1,ha);var p=mxUtils.getValue(G.style,mxConstants.STYLE_SOURCE_PERIMETER_SPACING);this.setCellStyles(mxConstants.STYLE_SOURCE_PERIMETER_SPACING,mxUtils.getValue(G.style,mxConstants.STYLE_TARGET_PERIMETER_SPACING),[f]);this.setCellStyles(mxConstants.STYLE_TARGET_PERIMETER_SPACING,p,[f])}c.push(f)}}else if(g.isVertex(f)&&(m=this.getCellGeometry(f),null!=m)){if(!(this.isTable(f)||this.isTableRow(f)||this.isTableCell(f)||this.isSwimlane(f))){m=m.clone();m.x+=m.width/
2-m.height/2;m.y+=m.height/2-m.width/2;var x=m.width;m.width=m.height;m.height=x;g.setGeometry(f,m)}var I=this.view.getState(f);if(null!=I){var t=[mxConstants.DIRECTION_EAST,mxConstants.DIRECTION_SOUTH,mxConstants.DIRECTION_WEST,mxConstants.DIRECTION_NORTH],y=mxUtils.getValue(I.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST);this.setCellStyles(mxConstants.STYLE_DIRECTION,t[mxUtils.mod(mxUtils.indexOf(t,y)+(d?-1:1),t.length)],[f])}c.push(f)}}}finally{g.endUpdate()}return c};Graph.prototype.stencilHasPlaceholders=
function(b){if(null!=b&&null!=b.fgNode)for(b=b.fgNode.firstChild;null!=b;){if("text"==b.nodeName&&"1"==b.getAttribute("placeholders"))return!0;b=b.nextSibling}return!1};var n=Graph.prototype.processChange;Graph.prototype.processChange=function(b){if(b instanceof mxGeometryChange&&(this.isTableCell(b.cell)||this.isTableRow(b.cell))&&(null==b.previous&&null!=b.geometry||null!=b.previous&&!b.previous.equals(b.geometry))){var d=b.cell;this.isTableCell(d)&&(d=this.model.getParent(d));this.isTableRow(d)&&
(d=this.model.getParent(d));var g=this.view.getState(d);null!=g&&null!=g.shape&&(this.view.invalidate(d),g.shape.bounds=null)}n.apply(this,arguments);b instanceof mxValueChange&&null!=b.cell&&null!=b.cell.value&&"object"==typeof b.cell.value&&this.invalidateDescendantsWithPlaceholders(b.cell)};Graph.prototype.invalidateDescendantsWithPlaceholders=function(b){b=this.model.getDescendants(b);if(0<b.length)for(var d=0;d<b.length;d++){var g=this.view.getState(b[d]);null!=g&&null!=g.shape&&null!=g.shape.stencil&&
@@ -2595,13 +2598,13 @@ u))}}else f.push(m[g])}this.updateCustomLinks(this.createCellMapping(l,k),m,this
g[c-1]){for(d=d[c].getElementsByTagName("a");0<d.length;){for(g=d[0].parentNode;null!=d[0].firstChild;)g.insertBefore(d[0].firstChild,d[0]);g.removeChild(d[0])}break}}else document.execCommand("createlink",!1,mxUtils.trim(b))};Graph.prototype.isCellResizable=function(b){var d=mxGraph.prototype.isCellResizable.apply(this,arguments),g=this.getCurrentCellStyle(b);return!this.isTableCell(b)&&!this.isTableRow(b)&&(d||"0"!=mxUtils.getValue(g,mxConstants.STYLE_RESIZABLE,"1")&&"wrap"==g[mxConstants.STYLE_WHITE_SPACE])};
Graph.prototype.distributeCells=function(b,d){null==d&&(d=this.getSelectionCells());if(null!=d&&1<d.length){for(var g=[],c=null,e=null,f=0;f<d.length;f++)if(this.getModel().isVertex(d[f])){var l=this.view.getState(d[f]);if(null!=l){var k=b?l.getCenterX():l.getCenterY(),c=null!=c?Math.max(c,k):k,e=null!=e?Math.min(e,k):k;g.push(l)}}if(2<g.length){g.sort(function(d,g){return b?d.x-g.x:d.y-g.y});l=this.view.translate;k=this.view.scale;e=e/k-(b?l.x:l.y);c=c/k-(b?l.x:l.y);this.getModel().beginUpdate();
try{for(var m=(c-e)/(g.length-1),c=e,f=1;f<g.length-1;f++){var q=this.view.getState(this.model.getParent(g[f].cell)),n=this.getCellGeometry(g[f].cell),c=c+m;null!=n&&null!=q&&(n=n.clone(),b?n.x=Math.round(c-n.width/2)-q.origin.x:n.y=Math.round(c-n.height/2)-q.origin.y,this.getModel().setGeometry(g[f].cell,n))}}finally{this.getModel().endUpdate()}}}return d};Graph.prototype.isCloneEvent=function(b){return mxClient.IS_MAC&&mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)};Graph.prototype.createSvgImageExport=
-function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,g,c,e,f,l,k,m,q,n,G,v,u){var p=null;if(null!=u)for(p=new mxDictionary,n=0;n<u.length;n++)p.put(u[n],!0);if(u=this.useCssTransforms)this.useCssTransforms=
-!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;g=null!=g?g:0;e=null!=e?e:!0;f=null!=f?f:!0;l=null!=l?l:!0;q=null!=q?q:!1;var B="page"==v?this.view.getBackgroundPageBounds():f&&null==p||c||"diagram"==v?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(B=mxRectangle.fromRectangle(B),B.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*x,(this.view.translate.y+this.backgroundImage.y)*x,this.backgroundImage.width*
-x,this.backgroundImage.height*x)));if(null==B)throw Error(mxResources.get("drawingEmpty"));var I=mxUtils.createXmlDocument(),t=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"svg"):I.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==I.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);
-b=d/x;var y=Math.max(1,Math.ceil(B.width*b)+2*g)+(q&&0==g?5:0),z=Math.max(1,Math.ceil(B.height*b)+2*g)+(q&&0==g?5:0);t.setAttribute("version","1.1");t.setAttribute("width",y+"px");t.setAttribute("height",z+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+y+" "+z);I.appendChild(t);var S=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"g"):I.createElement("g");t.appendChild(S);var C=this.createSvgCanvas(S);C.foOffset=e?-.5:0;C.textOffset=e?-.5:0;C.imageOffset=e?-.5:0;C.translate(Math.floor(g/
-d-B.x/x),Math.floor(g/d-B.y/x));var ha=document.createElement("div"),ca=C.getAlternateText;C.getAlternateText=function(b,d,g,c,e,f,l,k,m,q,n,G,A){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(ha.innerHTML=f,f=mxUtils.extractTextWithWhitespace(ha.childNodes));for(var va=Math.ceil(2*c/this.state.fontSize),Sa=[],Da=0,Ta=0;(0==va||Da<va)&&Ta<f.length;){var Wa=f.charCodeAt(Ta);if(10==Wa||13==Wa){if(0<Da)break}else Sa.push(f.charAt(Ta)),255>Wa&&Da++;Ta++}Sa.length<f.length&&1<f.length-
-Sa.length&&(f=mxUtils.trim(Sa.join(""))+"...");return f}catch(hb){return ca.apply(this,arguments)}else return ca.apply(this,arguments)};var L=this.backgroundImage;if(null!=L){d=x/d;var V=this.view.translate,P=new mxRectangle((L.x+V.x)*d,(L.y+V.y)*d,L.width*d,L.height*d);mxUtils.intersects(B,P)&&C.image(L.x+V.x,L.y+V.y,L.width,L.height,L.src,!0)}C.scale(b);C.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ua=k.drawCellState,D=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var g=
-D.apply(this,arguments);return null==g||b.view.graph.isCustomLink(g)?null:g};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var g=b.view.graph,c=null!=p?p.get(b.cell):g.isCellSelected(b.cell),e=g.model.getParent(b.cell);!(f&&null==p||c)&&null!=e;)c=null!=p?p.get(e):g.isCellSelected(e),e=g.model.getParent(e);(f&&null==p||c)&&ua.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),C);this.updateSvgLinks(t,
+function(){var b=new mxImageExport;b.getLinkForCellState=mxUtils.bind(this,function(b,d){return this.getLinkForCell(b.cell)});return b};Graph.prototype.parseBackgroundImage=function(b){var d=null;null!=b&&0<b.length&&(b=JSON.parse(b),d=new mxImage(b.src,b.width,b.height));return d};Graph.prototype.getBackgroundImageObject=function(b){return b};Graph.prototype.getSvg=function(b,d,g,c,e,f,l,k,m,q,n,G,v,u){var B=null;if(null!=u)for(B=new mxDictionary,n=0;n<u.length;n++)B.put(u[n],!0);if(u=this.useCssTransforms)this.useCssTransforms=
+!1,this.view.revalidate(),this.sizeDidChange();try{d=null!=d?d:1;g=null!=g?g:0;e=null!=e?e:!0;f=null!=f?f:!0;l=null!=l?l:!0;q=null!=q?q:!1;var p="page"==v?this.view.getBackgroundPageBounds():f&&null==B||c||"diagram"==v?this.getGraphBounds():this.getBoundingBox(this.getSelectionCells()),x=this.view.scale;"diagram"==v&&null!=this.backgroundImage&&(p=mxRectangle.fromRectangle(p),p.add(new mxRectangle((this.view.translate.x+this.backgroundImage.x)*x,(this.view.translate.y+this.backgroundImage.y)*x,this.backgroundImage.width*
+x,this.backgroundImage.height*x)));if(null==p)throw Error(mxResources.get("drawingEmpty"));var I=mxUtils.createXmlDocument(),t=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"svg"):I.createElement("svg");null!=b&&(null!=t.style?t.style.backgroundColor=b:t.setAttribute("style","background-color:"+b));null==I.createElementNS?(t.setAttribute("xmlns",mxConstants.NS_SVG),t.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):t.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);
+b=d/x;var y=Math.max(1,Math.ceil(p.width*b)+2*g)+(q&&0==g?5:0),z=Math.max(1,Math.ceil(p.height*b)+2*g)+(q&&0==g?5:0);t.setAttribute("version","1.1");t.setAttribute("width",y+"px");t.setAttribute("height",z+"px");t.setAttribute("viewBox",(e?"-0.5 -0.5":"0 0")+" "+y+" "+z);I.appendChild(t);var S=null!=I.createElementNS?I.createElementNS(mxConstants.NS_SVG,"g"):I.createElement("g");t.appendChild(S);var C=this.createSvgCanvas(S);C.foOffset=e?-.5:0;C.textOffset=e?-.5:0;C.imageOffset=e?-.5:0;C.translate(Math.floor(g/
+d-p.x/x),Math.floor(g/d-p.y/x));var ha=document.createElement("div"),ca=C.getAlternateText;C.getAlternateText=function(b,d,g,c,e,f,l,k,m,q,n,G,A){if(null!=f&&0<this.state.fontSize)try{mxUtils.isNode(f)?f=f.innerText:(ha.innerHTML=f,f=mxUtils.extractTextWithWhitespace(ha.childNodes));for(var va=Math.ceil(2*c/this.state.fontSize),Sa=[],Da=0,Ta=0;(0==va||Da<va)&&Ta<f.length;){var Wa=f.charCodeAt(Ta);if(10==Wa||13==Wa){if(0<Da)break}else Sa.push(f.charAt(Ta)),255>Wa&&Da++;Ta++}Sa.length<f.length&&1<f.length-
+Sa.length&&(f=mxUtils.trim(Sa.join(""))+"...");return f}catch(hb){return ca.apply(this,arguments)}else return ca.apply(this,arguments)};var M=this.backgroundImage;if(null!=M){d=x/d;var V=this.view.translate,O=new mxRectangle((M.x+V.x)*d,(M.y+V.y)*d,M.width*d,M.height*d);mxUtils.intersects(p,O)&&C.image(M.x+V.x,M.y+V.y,M.width,M.height,M.src,!0)}C.scale(b);C.textEnabled=l;k=null!=k?k:this.createSvgImageExport();var ua=k.drawCellState,D=k.getLinkForCellState;k.getLinkForCellState=function(b,d){var g=
+D.apply(this,arguments);return null==g||b.view.graph.isCustomLink(g)?null:g};k.getLinkTargetForCellState=function(b,d){return b.view.graph.getLinkTargetForCell(b.cell)};k.drawCellState=function(b,d){for(var g=b.view.graph,c=null!=B?B.get(b.cell):g.isCellSelected(b.cell),e=g.model.getParent(b.cell);!(f&&null==B||c)&&null!=e;)c=null!=B?B.get(e):g.isCellSelected(e),e=g.model.getParent(e);(f&&null==B||c)&&ua.apply(this,arguments)};k.drawState(this.getView().getState(this.model.root),C);this.updateSvgLinks(t,
m,!0);this.addForeignObjectWarning(C,t);return t}finally{u&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(b,d){if("0"!=urlParams["svg-warning"]&&0<d.getElementsByTagName("foreignObject").length){var g=b.createElement("switch"),c=b.createElement("g");c.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility");var e=b.createElement("a");e.setAttribute("transform","translate(0,-5)");null==e.setAttributeNS||
d.ownerDocument!=document&&null==document.documentMode?(e.setAttribute("xlink:href",Graph.foreignObjectWarningLink),e.setAttribute("target","_blank")):(e.setAttributeNS(mxConstants.NS_XLINK,"xlink:href",Graph.foreignObjectWarningLink),e.setAttributeNS(mxConstants.NS_XLINK,"target","_blank"));var f=b.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);g.appendChild(c);
e.appendChild(f);g.appendChild(e);d.appendChild(g)}};Graph.prototype.updateSvgLinks=function(b,d,g){b=b.getElementsByTagName("a");for(var c=0;c<b.length;c++)if(null==b[c].getAttribute("target")){var e=b[c].getAttribute("href");null==e&&(e=b[c].getAttribute("xlink:href"));null!=e&&(null!=d&&/^https?:\/\//.test(e)?b[c].setAttribute("target",d):g&&this.isCustomLink(e)&&b[c].setAttribute("href","javascript:void(0);"))}};Graph.prototype.createSvgCanvas=function(b){b=new mxSvgCanvas2D(b);b.pointerEvents=
@@ -2651,16 +2654,16 @@ if(null!=e&&(g=this.graph.getCellStyle(c),"stackLayout"==g.childLayout)){var f=p
(g.put(b,!0),e.push(b))}for(var d=E.apply(this,arguments),g=new mxDictionary,c=this.graph.model,e=[],f=0;f<d.length;f++){var l=d[f];this.graph.isTableCell(l)?b(c.getParent(c.getParent(l))):this.graph.isTableRow(l)&&b(c.getParent(l));b(l)}return e};var J=mxVertexHandler.prototype.createParentHighlightShape;mxVertexHandler.prototype.createParentHighlightShape=function(b){var d=J.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};var C=mxEdgeHandler.prototype.createParentHighlightShape;
mxEdgeHandler.prototype.createParentHighlightShape=function(b){var d=C.apply(this,arguments);d.stroke="#C0C0C0";d.strokewidth=1;return d};mxVertexHandler.prototype.rotationHandleVSpacing=-12;mxVertexHandler.prototype.getRotationHandlePosition=function(){var b=this.getHandlePadding();return new mxPoint(this.bounds.x+this.bounds.width-this.rotationHandleVSpacing+b.x/2,this.bounds.y+this.rotationHandleVSpacing-b.y/2)};mxVertexHandler.prototype.isRecursiveResize=function(b,d){return this.graph.isRecursiveVertexResize(b)&&
!mxEvent.isControlDown(d.getEvent())};mxVertexHandler.prototype.isCenteredEvent=function(b,d){return!(!this.graph.isSwimlane(b.cell)&&0<this.graph.model.getChildCount(b.cell)&&!this.graph.isCellCollapsed(b.cell)&&"1"==mxUtils.getValue(b.style,"recursiveResize","1")&&null==mxUtils.getValue(b.style,"childLayout",null))&&mxEvent.isControlDown(d.getEvent())||mxEvent.isMetaDown(d.getEvent())};var K=mxVertexHandler.prototype.isRotationHandleVisible;mxVertexHandler.prototype.isRotationHandleVisible=function(){return K.apply(this,
-arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var M=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return M.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&
-!this.graph.isTableRow(this.state.cell)};var Z=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||Z.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var b=0;this.graph.isTableRow(this.state.cell)?b=1:this.graph.isTableCell(this.state.cell)&&(b=2);return b};var L=mxVertexHandler.prototype.getSelectionBorderBounds;
-mxVertexHandler.prototype.getSelectionBorderBounds=function(){return L.apply(this,arguments).grow(-this.getSelectionBorderInset())};var O=null,U=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==O&&(O=mxCellRenderer.defaultShapes.tableLine);var b=U.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=function(b,d,g){for(var c=[],e=0;e<b.length;e++){var l=b[e];c.push(null==l?null:new mxPoint((m+l.x+d)*f,(q+l.y+g)*f))}return c},
+arguments)&&!this.graph.isTableCell(this.state.cell)&&!this.graph.isTableRow(this.state.cell)&&!this.graph.isTable(this.state.cell)};mxVertexHandler.prototype.getSizerBounds=function(){return this.graph.isTableCell(this.state.cell)?this.graph.view.getState(this.graph.model.getParent(this.graph.model.getParent(this.state.cell))):this.bounds};var L=mxVertexHandler.prototype.isParentHighlightVisible;mxVertexHandler.prototype.isParentHighlightVisible=function(){return L.apply(this,arguments)&&!this.graph.isTableCell(this.state.cell)&&
+!this.graph.isTableRow(this.state.cell)};var Z=mxVertexHandler.prototype.isCustomHandleVisible;mxVertexHandler.prototype.isCustomHandleVisible=function(b){return b.tableHandle||Z.apply(this,arguments)&&(!this.graph.isTable(this.state.cell)||this.graph.isCellSelected(this.state.cell))};mxVertexHandler.prototype.getSelectionBorderInset=function(){var b=0;this.graph.isTableRow(this.state.cell)?b=1:this.graph.isTableCell(this.state.cell)&&(b=2);return b};var M=mxVertexHandler.prototype.getSelectionBorderBounds;
+mxVertexHandler.prototype.getSelectionBorderBounds=function(){return M.apply(this,arguments).grow(-this.getSelectionBorderInset())};var P=null,U=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){null==P&&(P=mxCellRenderer.defaultShapes.tableLine);var b=U.apply(this,arguments);if(this.graph.isTable(this.state.cell)){var d=function(b,d,g){for(var c=[],e=0;e<b.length;e++){var l=b[e];c.push(null==l?null:new mxPoint((m+l.x+d)*f,(q+l.y+g)*f))}return c},
g=this,c=this.graph,e=c.model,f=c.view.scale,l=this.state,k=this.selectionBorder,m=this.state.origin.x+c.view.translate.x,q=this.state.origin.y+c.view.translate.y;null==b&&(b=[]);var n=c.view.getCellStates(e.getChildCells(this.state.cell,!0));if(0<n.length){for(var G=e.getChildCells(n[0].cell,!0),v=c.getTableLines(this.state.cell,!1,!0),u=c.getTableLines(this.state.cell,!0,!1),e=0;e<G.length;e++)mxUtils.bind(this,function(e){var m=c.view.getState(G[e]),q=c.getCellGeometry(G[e]),n=null!=q.alternateBounds?
-q.alternateBounds:q;null==m&&(m=new mxCellState(c.view,G[e],c.getCellStyle(G[e])),m.x=l.x+q.x*f,m.y=l.y+q.y*f,m.width=n.width*f,m.height=n.height*f,m.updateCachedBounds());var q=e<G.length-1?G[e+1]:null,q=null!=q?c.getCellGeometry(q):null,u=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=v[e]?new O(v[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);q.isDashed=k.isDashed;q.svgStrokeTolerance++;m=new mxHandle(m,"col-resize",null,q);m.tableHandle=!0;var p=0;m.shape.node.parentNode.insertBefore(m.shape.node,
-m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==p?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(v[e],p,0),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=this.state.x+(n.width+p)*f;this.shape.bounds.y=l.y+(e==G.length-1?0:b.y*f);this.shape.bounds.height=l.height-(e==G.length-1?0:(b.height+b.y)*f)}this.shape.redraw()}};var B=
-!1;m.setPosition=function(b,d,g){p=Math.max(Graph.minTableColumnWidth-n.width,d.x-b.x-n.width);B=mxEvent.isShiftDown(g.getEvent());null==u||B||(p=Math.min(p,u.width-Graph.minTableColumnWidth))};m.execute=function(b){if(0!=p)c.setTableColumnWidth(this.state.cell,p,B);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}p=0};m.positionChanged=function(){};m.reset=function(){p=0};b.push(m)})(e);for(e=0;e<n.length;e++)mxUtils.bind(this,
-function(e){var m=n[e],q=e<n.length-1?n[e+1]:null,q=null!=q?c.getCellGeometry(q.cell):null,G=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=u[e]?new O(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);q.isDashed=k.isDashed;q.svgStrokeTolerance++;m=new mxHandle(m,"row-resize",null,q);m.tableHandle=!0;var v=0;m.shape.node.parentNode.insertBefore(m.shape.node,m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=
-0==v?mxConstants.NONE:k.stroke;if(this.shape.constructor==O)this.shape.line=d(u[e],0,v),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+v*f;this.shape.bounds.x=l.x+(e==n.length-1?0:b.x*f);this.shape.bounds.width=l.width-(e==n.length-1?0:b.width+b.x+f)}this.shape.redraw()}};var p=!1;m.setPosition=function(b,d,g){v=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height);p=mxEvent.isShiftDown(g.getEvent());
-null!=G&&p&&(v=Math.min(v,G.height-Graph.minTableRowHeight))};m.execute=function(b){if(0!=v)c.setTableRowHeight(this.state.cell,v,!p);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}v=0};m.reset=function(){v=0};b.push(m)})(e)}}return null!=b?b.reverse():null};var G=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){G.apply(this,arguments);if(null!=this.moveHandles)for(var d=
+q.alternateBounds:q;null==m&&(m=new mxCellState(c.view,G[e],c.getCellStyle(G[e])),m.x=l.x+q.x*f,m.y=l.y+q.y*f,m.width=n.width*f,m.height=n.height*f,m.updateCachedBounds());var q=e<G.length-1?G[e+1]:null,q=null!=q?c.getCellGeometry(q):null,u=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=v[e]?new P(v[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!0);q.isDashed=k.isDashed;q.svgStrokeTolerance++;m=new mxHandle(m,"col-resize",null,q);m.tableHandle=!0;var B=0;m.shape.node.parentNode.insertBefore(m.shape.node,
+m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=0==B?mxConstants.NONE:k.stroke;if(this.shape.constructor==P)this.shape.line=d(v[e],B,0),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.width=1;this.shape.bounds.x=this.state.x+(n.width+B)*f;this.shape.bounds.y=l.y+(e==G.length-1?0:b.y*f);this.shape.bounds.height=l.height-(e==G.length-1?0:(b.height+b.y)*f)}this.shape.redraw()}};var p=
+!1;m.setPosition=function(b,d,g){B=Math.max(Graph.minTableColumnWidth-n.width,d.x-b.x-n.width);p=mxEvent.isShiftDown(g.getEvent());null==u||p||(B=Math.min(B,u.width-Graph.minTableColumnWidth))};m.execute=function(b){if(0!=B)c.setTableColumnWidth(this.state.cell,B,p);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}B=0};m.positionChanged=function(){};m.reset=function(){B=0};b.push(m)})(e);for(e=0;e<n.length;e++)mxUtils.bind(this,
+function(e){var m=n[e],q=e<n.length-1?n[e+1]:null,q=null!=q?c.getCellGeometry(q.cell):null,G=null!=q&&null!=q.alternateBounds?q.alternateBounds:q,q=null!=u[e]?new P(u[e],mxConstants.NONE,1):new mxLine(new mxRectangle,mxConstants.NONE,1,!1);q.isDashed=k.isDashed;q.svgStrokeTolerance++;m=new mxHandle(m,"row-resize",null,q);m.tableHandle=!0;var v=0;m.shape.node.parentNode.insertBefore(m.shape.node,m.shape.node.parentNode.firstChild);m.redraw=function(){if(null!=this.shape&&null!=this.state.shape){this.shape.stroke=
+0==v?mxConstants.NONE:k.stroke;if(this.shape.constructor==P)this.shape.line=d(u[e],0,v),this.shape.updateBoundsFromLine();else{var b=c.getActualStartSize(l.cell,!0);this.shape.bounds.height=1;this.shape.bounds.y=this.state.y+this.state.height+v*f;this.shape.bounds.x=l.x+(e==n.length-1?0:b.x*f);this.shape.bounds.width=l.width-(e==n.length-1?0:b.width+b.x+f)}this.shape.redraw()}};var B=!1;m.setPosition=function(b,d,g){v=Math.max(Graph.minTableRowHeight-b.height,d.y-b.y-b.height);B=mxEvent.isShiftDown(g.getEvent());
+null!=G&&B&&(v=Math.min(v,G.height-Graph.minTableRowHeight))};m.execute=function(b){if(0!=v)c.setTableRowHeight(this.state.cell,v,!B);else if(!g.blockDelayedSelection){var d=c.getCellAt(b.getGraphX(),b.getGraphY())||l.cell;c.graphHandler.selectCellForEvent(d,b)}v=0};m.reset=function(){v=0};b.push(m)})(e)}}return null!=b?b.reverse():null};var G=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){G.apply(this,arguments);if(null!=this.moveHandles)for(var d=
0;d<this.moveHandles.length;d++)this.moveHandles[d].style.visibility=b?"":"hidden";if(null!=this.cornerHandles)for(d=0;d<this.cornerHandles.length;d++)this.cornerHandles[d].node.style.visibility=b?"":"hidden"};mxVertexHandler.prototype.refreshMoveHandles=function(){var b=this.graph.model;if(null!=this.moveHandles){for(var d=0;d<this.moveHandles.length;d++)this.moveHandles[d].parentNode.removeChild(this.moveHandles[d]);this.moveHandles=null}this.moveHandles=[];for(d=0;d<b.getChildCount(this.state.cell);d++)mxUtils.bind(this,
function(d){if(null!=d&&b.isVertex(d.cell)){var g=mxUtils.createImage(Editor.rowMoveImage);g.style.position="absolute";g.style.cursor="pointer";g.style.width="7px";g.style.height="4px";g.style.padding="4px 2px 4px 2px";g.rowState=d;mxEvent.addGestureListeners(g,mxUtils.bind(this,function(b){this.graph.popupMenuHandler.hideMenu();this.graph.stopEditing(!1);!this.graph.isToggleEvent(b)&&this.graph.isCellSelected(d.cell)||this.graph.selectCellForEvent(d.cell,b);mxEvent.isPopupTrigger(b)||(this.graph.graphHandler.start(this.state.cell,
mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSelectionCells()),this.graph.graphHandler.cellWasClicked=!0,this.graph.isMouseTrigger=mxEvent.isMouseEvent(b),this.graph.isMouseDown=!0);mxEvent.consume(b)}),null,mxUtils.bind(this,function(b){mxEvent.isPopupTrigger(b)&&(this.graph.popupMenuHandler.popup(mxEvent.getClientX(b),mxEvent.getClientY(b),d.cell,b),mxEvent.consume(b))}));this.moveHandles.push(g);this.graph.container.appendChild(g)}})(this.graph.view.getState(b.getChildAt(this.state.cell,
@@ -2716,9 +2719,9 @@ this.linkHint.clientWidth)/2))+"px";this.linkHint.style.top=Math.round(b.y+b.hei
this.graph.getSelectionModel().removeListener(this.changeHandler),this.changeHandler=null)}}();(function(){function b(b,d,g){mxShape.call(this);this.line=b;this.stroke=d;this.strokewidth=null!=g?g:1;this.updateBoundsFromLine()}function c(){mxSwimlane.call(this)}function e(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function f(){mxActor.call(this)}function p(){mxCylinder.call(this)}function t(){mxCylinder.call(this)}function d(){mxCylinder.call(this)}function g(){mxCylinder.call(this)}function l(){mxShape.call(this)}function q(){mxShape.call(this)}function m(b,d,g,c){mxShape.call(this);
this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1}function n(){mxActor.call(this)}function u(){mxCylinder.call(this)}function v(){mxCylinder.call(this)}function y(){mxActor.call(this)}function x(){mxActor.call(this)}function F(){mxActor.call(this)}function H(){mxActor.call(this)}function z(){mxActor.call(this)}function D(){mxActor.call(this)}function N(){mxActor.call(this)}function E(b,d){this.canvas=b;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.defaultVariation=
d;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,E.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,E.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,E.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,E.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,E.prototype.curveTo);this.originalArcTo=
-this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,E.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function C(){mxRectangleShape.call(this)}function K(){mxActor.call(this)}function M(){mxActor.call(this)}function Z(){mxActor.call(this)}function L(){mxRectangleShape.call(this)}function O(){mxRectangleShape.call(this)}function U(){mxCylinder.call(this)}function G(){mxShape.call(this)}function I(){mxShape.call(this)}function B(){mxEllipse.call(this)}function ca(){mxShape.call(this)}function S(){mxShape.call(this)}
+this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,E.prototype.arcTo)}function J(){mxRectangleShape.call(this)}function C(){mxRectangleShape.call(this)}function K(){mxActor.call(this)}function L(){mxActor.call(this)}function Z(){mxActor.call(this)}function M(){mxRectangleShape.call(this)}function P(){mxRectangleShape.call(this)}function U(){mxCylinder.call(this)}function G(){mxShape.call(this)}function I(){mxShape.call(this)}function B(){mxEllipse.call(this)}function ca(){mxShape.call(this)}function S(){mxShape.call(this)}
function Q(){mxRectangleShape.call(this)}function V(){mxShape.call(this)}function oa(){mxShape.call(this)}function fa(){mxShape.call(this)}function ka(){mxShape.call(this)}function ra(){mxShape.call(this)}function la(){mxCylinder.call(this)}function ja(){mxCylinder.call(this)}function aa(){mxRectangleShape.call(this)}function ba(){mxDoubleEllipse.call(this)}function R(){mxDoubleEllipse.call(this)}function sa(){mxArrowConnector.call(this);this.spacing=0}function W(){mxArrowConnector.call(this);this.spacing=
-0}function X(){mxActor.call(this)}function ma(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function T(){mxActor.call(this)}function ia(){mxActor.call(this)}function da(){mxActor.call(this)}function na(){mxActor.call(this)}function ha(){mxActor.call(this)}function ua(){mxActor.call(this)}function P(){mxActor.call(this)}function ea(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
+0}function X(){mxActor.call(this)}function ma(){mxRectangleShape.call(this)}function qa(){mxActor.call(this)}function T(){mxActor.call(this)}function ia(){mxActor.call(this)}function da(){mxActor.call(this)}function na(){mxActor.call(this)}function ha(){mxActor.call(this)}function ua(){mxActor.call(this)}function O(){mxActor.call(this)}function ea(){mxActor.call(this)}function ta(){mxActor.call(this)}function ya(){mxEllipse.call(this)}function pa(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}
function za(){mxRhombus.call(this)}function Ba(){mxEllipse.call(this)}function Ea(){mxEllipse.call(this)}function Ja(){mxEllipse.call(this)}function Aa(){mxEllipse.call(this)}function Ka(){mxActor.call(this)}function Ca(){mxActor.call(this)}function wa(){mxActor.call(this)}function Y(b,d,g,c){mxShape.call(this);this.bounds=b;this.fill=d;this.stroke=g;this.strokewidth=null!=c?c:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize=!0;this.indent=2;this.rectOutline="single"}function Fa(){mxConnector.call(this)}
function Na(b,d,g,c,e,f,l,k,m,q){l+=m;var A=c.clone();c.x-=e*(2*l+m);c.y-=f*(2*l+m);e*=l+m;f*=l+m;return function(){b.ellipse(A.x-e-l,A.y-f-l,2*l,2*l);q?b.fillAndStroke():b.stroke()}}mxUtils.extend(b,mxShape);b.prototype.updateBoundsFromLine=function(){var b=null;if(null!=this.line)for(var d=0;d<this.line.length;d++){var g=this.line[d];null!=g&&(g=new mxRectangle(g.x,g.y,this.strokewidth,this.strokewidth),null==b?b=g:b.add(g))}this.bounds=null!=b?b:new mxRectangle};b.prototype.paintVertexShape=function(b,
d,g,c,e){this.paintTableLine(b,this.line,0,0)};b.prototype.paintTableLine=function(b,d,g,c){if(null!=d){var e=null;b.begin();for(var A=0;A<d.length;A++){var f=d[A];null!=f&&(null==e?b.moveTo(f.x+g,f.y+c):null!=e&&b.lineTo(f.x+g,f.y+c));e=f}b.end();b.stroke()}};b.prototype.intersectsRectangle=function(b){var d=!1;if(mxShape.prototype.intersectsRectangle.apply(this,arguments)&&null!=this.line)for(var g=null,c=0;c<this.line.length&&!d;c++){var e=this.line[c];null!=e&&null!=g&&(d=mxUtils.rectangleIntersectsSegment(b,
@@ -2767,15 +2770,15 @@ mxConstants.STYLE_HORIZONTAL,!0)==(null==this.direction||this.direction==mxConst
J.prototype.paintForeground=function(b,d,g,c,e){var f=mxUtils.getValue(this.style,"fixedSize",this.fixedSize),A=parseFloat(mxUtils.getValue(this.style,"size",this.size)),A=f?Math.max(0,Math.min(c,A)):c*Math.max(0,Math.min(1,A));this.isRounded&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,A=Math.max(A,Math.min(c*f,e*f)));A=Math.round(A);b.begin();b.moveTo(d+A,g);b.lineTo(d+A,g+e);b.moveTo(d+c-A,g);b.lineTo(d+c-A,g+e);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,
arguments)};mxCellRenderer.registerShape("process",J);mxCellRenderer.registerShape("process2",J);mxUtils.extend(C,mxRectangleShape);C.prototype.paintBackground=function(b,d,g,c,e){b.setFillColor(mxConstants.NONE);b.rect(d,g,c,e);b.fill()};C.prototype.paintForeground=function(b,d,g,c,e){};mxCellRenderer.registerShape("transparent",C);mxUtils.extend(K,mxHexagon);K.prototype.size=30;K.prototype.position=.5;K.prototype.position2=.5;K.prototype.base=20;K.prototype.getLabelMargins=function(){return new mxRectangle(0,
0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale)};K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(b,d,g,c,e){d=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;g=Math.max(0,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));var f=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position",this.position)))),A=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",
-this.position2)))),l=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-g),new mxPoint(Math.min(c,f+l),e-g),new mxPoint(A,e),new mxPoint(Math.max(0,f),e-g),new mxPoint(0,e-g)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",K);mxUtils.extend(M,mxActor);M.prototype.size=.2;M.prototype.fixedSize=20;M.prototype.isRoundable=function(){return!0};M.prototype.redrawPath=function(b,d,g,c,e){d=
-"0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(0,e),new mxPoint(d,e/2)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("step",M);
+this.position2)))),l=Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"base",this.base))));this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-g),new mxPoint(Math.min(c,f+l),e-g),new mxPoint(A,e),new mxPoint(Math.max(0,f),e-g),new mxPoint(0,e-g)],this.isRounded,d,!0,[4])};mxCellRenderer.registerShape("callout",K);mxUtils.extend(L,mxActor);L.prototype.size=.2;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(b,d,g,c,e){d=
+"0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(0,e),new mxPoint(d,e/2)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("step",L);
mxUtils.extend(Z,mxHexagon);Z.prototype.size=.25;Z.prototype.fixedSize=20;Z.prototype.isRoundable=function(){return!0};Z.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,
-0),new mxPoint(c-d,0),new mxPoint(c,.5*e),new mxPoint(c-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,g,!0)};mxCellRenderer.registerShape("hexagon",Z);mxUtils.extend(L,mxRectangleShape);L.prototype.isHtmlAllowed=function(){return!1};L.prototype.paintForeground=function(b,d,g,c,e){var f=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,g+f);b.lineTo(d+c/2,g+e-f);b.moveTo(d+f,g+e/2);b.lineTo(d+c-f,g+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",
-L);var Za=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};mxRhombus.prototype.paintVertexShape=function(b,d,g,c,e){Za.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
-0);d+=f;g+=f;c-=2*f;e-=2*f;0<c&&0<e&&(b.setShadow(!1),Za.apply(this,[b,d,g,c,e]))}};mxUtils.extend(O,mxRectangleShape);O.prototype.isHtmlAllowed=function(){return!1};O.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};O.prototype.paintForeground=function(b,d,g,c,e){if(null!=this.style){if(!this.outline&&1==this.style["double"]){var f=
+0),new mxPoint(c-d,0),new mxPoint(c,.5*e),new mxPoint(c-d,e),new mxPoint(d,e),new mxPoint(0,.5*e)],this.isRounded,g,!0)};mxCellRenderer.registerShape("hexagon",Z);mxUtils.extend(M,mxRectangleShape);M.prototype.isHtmlAllowed=function(){return!1};M.prototype.paintForeground=function(b,d,g,c,e){var f=Math.min(c/5,e/5)+1;b.begin();b.moveTo(d+c/2,g+f);b.lineTo(d+c/2,g+e-f);b.moveTo(d+f,g+e/2);b.lineTo(d+c-f,g+e/2);b.end();b.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("plus",
+M);var Za=mxRhombus.prototype.paintVertexShape;mxRhombus.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};mxRhombus.prototype.paintVertexShape=function(b,d,g,c,e){Za.apply(this,arguments);if(!this.outline&&1==this.style["double"]){var f=2*Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||
+0);d+=f;g+=f;c-=2*f;e-=2*f;0<c&&0<e&&(b.setShadow(!1),Za.apply(this,[b,d,g,c,e]))}};mxUtils.extend(P,mxRectangleShape);P.prototype.isHtmlAllowed=function(){return!1};P.prototype.getLabelBounds=function(b){if(1==this.style["double"]){var d=(Math.max(2,this.strokewidth+1)+parseFloat(this.style[mxConstants.STYLE_MARGIN]||0))*this.scale;return new mxRectangle(b.x+d,b.y+d,b.width-2*d,b.height-2*d)}return b};P.prototype.paintForeground=function(b,d,g,c,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);d+=f;g+=f;c-=2*f;e-=2*f;0<c&&0<e&&mxRectangleShape.prototype.paintBackground.apply(this,arguments)}b.setDashed(!1);var f=0,A;do{A=mxCellRenderer.defaultShapes[this.style["symbol"+f]];if(null!=A){var l=this.style["symbol"+f+"Align"],k=this.style["symbol"+f+"VerticalAlign"],m=this.style["symbol"+f+"Width"],q=this.style["symbol"+f+"Height"],n=this.style["symbol"+f+"Spacing"]||0,G=this.style["symbol"+f+"VSpacing"]||n,va=
this.style["symbol"+f+"ArcSpacing"];null!=va&&(va*=this.getArcSize(c+this.strokewidth,e+this.strokewidth),n+=va,G+=va);var va=d,Da=g,va=l==mxConstants.ALIGN_CENTER?va+(c-m)/2:l==mxConstants.ALIGN_RIGHT?va+(c-m-n):va+n,Da=k==mxConstants.ALIGN_MIDDLE?Da+(e-q)/2:k==mxConstants.ALIGN_BOTTOM?Da+(e-q-G):Da+G;b.save();l=new A;l.style=this.style;A.prototype.paintVertexShape.call(l,b,va,Da,m,q);b.restore()}f++}while(null!=A)}mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("ext",
-O);mxUtils.extend(U,mxCylinder);U.prototype.redrawPath=function(b,d,g,c,e,f){f?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",U);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/
+P);mxUtils.extend(U,mxCylinder);U.prototype.redrawPath=function(b,d,g,c,e,f){f?(b.moveTo(0,0),b.lineTo(c/2,e/2),b.lineTo(c,0),b.end()):(b.moveTo(0,0),b.lineTo(c,0),b.lineTo(c,e),b.lineTo(0,e),b.close())};mxCellRenderer.registerShape("message",U);mxUtils.extend(G,mxShape);G.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.ellipse(c/4,0,c/2,e/4);b.fillAndStroke();b.begin();b.moveTo(c/2,e/4);b.lineTo(c/2,2*e/3);b.moveTo(c/2,e/3);b.lineTo(0,e/3);b.moveTo(c/2,e/3);b.lineTo(c,e/3);b.moveTo(c/
2,2*e/3);b.lineTo(0,e);b.moveTo(c/2,2*e/3);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlActor",G);mxUtils.extend(I,mxShape);I.prototype.getLabelMargins=function(b){return new mxRectangle(b.width/6,0,0,0)};I.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(0,e/4);b.lineTo(0,3*e/4);b.end();b.stroke();b.begin();b.moveTo(0,e/2);b.lineTo(c/6,e/2);b.end();b.stroke();b.ellipse(c/6,0,5*c/6,e);b.fillAndStroke()};mxCellRenderer.registerShape("umlBoundary",
I);mxUtils.extend(B,mxEllipse);B.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/8,g+e);b.lineTo(d+7*c/8,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("umlEntity",B);mxUtils.extend(ca,mxShape);ca.prototype.paintVertexShape=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(c,0);b.lineTo(0,e);b.moveTo(0,0);b.lineTo(c,e);b.end();b.stroke()};mxCellRenderer.registerShape("umlDestroy",ca);mxUtils.extend(S,mxShape);
S.prototype.getLabelBounds=function(b){return new mxRectangle(b.x,b.y+b.height/8,b.width,7*b.height/8)};S.prototype.paintBackground=function(b,d,g,c,e){b.translate(d,g);b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,0);b.end();b.stroke();b.ellipse(0,e/8,c,7*e/8);b.fillAndStroke()};S.prototype.paintForeground=function(b,d,g,c,e){b.begin();b.moveTo(3*c/8,e/8*1.1);b.lineTo(5*c/8,e/4);b.end();b.stroke()};mxCellRenderer.registerShape("umlControl",S);mxUtils.extend(Q,mxRectangleShape);Q.prototype.size=
@@ -2791,7 +2794,7 @@ d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?H.prototype.fixe
k,A+m),new mxPoint(l,A+m-e),new mxPoint(l,A)]):(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),A=[new mxPoint(l+e,A),new mxPoint(l+k,A),new mxPoint(l+k-e,A+m),new mxPoint(l,A+m),new mxPoint(l+e,A)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(A,b,g)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,
"fixedSize","0"),f=e?z.prototype.fixedSize:z.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,A=b.y,k=b.width,m=b.height;d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(.5*k,f)):k*Math.max(0,Math.min(1,f)),A=[new mxPoint(l+e,A),new mxPoint(l+k-e,A),new mxPoint(l+k,A+m),new mxPoint(l,A+m),new mxPoint(l+e,A)]):d==mxConstants.DIRECTION_WEST?
(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A),new mxPoint(l+k,A),new mxPoint(l+k-e,A+m),new mxPoint(l+e,A+m),new mxPoint(l,A)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A+e),new mxPoint(l+k,A),new mxPoint(l+k,A+m),new mxPoint(l,A+m-e),new mxPoint(l,A+e)]):(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A),new mxPoint(l+k,A+e),new mxPoint(l+k,A+m-e),new mxPoint(l,A+m),new mxPoint(l,
-A)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(A,b,g)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?M.prototype.fixedSize:M.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,A=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=
+A)]);m=b.getCenterX();b=b.getCenterY();b=new mxPoint(m,b);c&&(g.x<l||g.x>l+k?b.y=g.y:b.x=g.x);return mxUtils.getPerimeterPoint(A,b,g)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?L.prototype.fixedSize:L.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,A=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=
d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;d==mxConstants.DIRECTION_EAST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A),new mxPoint(l+k-e,A),new mxPoint(l+k,b),new mxPoint(l+k-e,A+m),new mxPoint(l,A+m),new mxPoint(l+e,b),new mxPoint(l,A)]):d==mxConstants.DIRECTION_WEST?(e=e?Math.max(0,Math.min(k,f)):k*Math.max(0,Math.min(1,f)),A=[new mxPoint(l+e,A),new mxPoint(l+k,A),new mxPoint(l+k-e,b),new mxPoint(l+
k,A+m),new mxPoint(l+e,A+m),new mxPoint(l,b),new mxPoint(l+e,A)]):d==mxConstants.DIRECTION_NORTH?(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A+e),new mxPoint(q,A),new mxPoint(l+k,A+e),new mxPoint(l+k,A+m),new mxPoint(q,A+m-e),new mxPoint(l,A+m),new mxPoint(l,A+e)]):(e=e?Math.max(0,Math.min(m,f)):m*Math.max(0,Math.min(1,f)),A=[new mxPoint(l,A),new mxPoint(q,A+e),new mxPoint(l+k,A),new mxPoint(l+k,A+m-e),new mxPoint(q,A+m),new mxPoint(l,A+m-e),new mxPoint(l,A)]);q=new mxPoint(q,
b);c&&(g.x<l||g.x>l+k?q.y=g.y:q.x=g.x);return mxUtils.getPerimeterPoint(A,q,g)};mxStyleRegistry.putValue("stepPerimeter",mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(b,d,g,c){var e="0"!=mxUtils.getValue(d.style,"fixedSize","0"),f=e?Z.prototype.fixedSize:Z.prototype.size;null!=d&&(f=mxUtils.getValue(d.style,"size",f));e&&(f*=d.view.scale);var l=b.x,A=b.y,k=b.width,m=b.height,q=b.getCenterX();b=b.getCenterY();d=null!=d?mxUtils.getValue(d.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):
@@ -2814,7 +2817,7 @@ mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPo
this.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));g=(e-f)/2;var f=g+f,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,g),new mxPoint(c-d,g),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,f),new mxPoint(0,f)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("singleArrow",da);mxUtils.extend(na,mxActor);na.prototype.redrawPath=function(b,
d,g,c,e){var f=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth))));d=c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize))));g=(e-f)/2;var f=g+f,l=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,e/2),new mxPoint(d,0),new mxPoint(d,g),new mxPoint(c-d,g),new mxPoint(c-d,0),new mxPoint(c,e/2),new mxPoint(c-d,e),new mxPoint(c-d,f),new mxPoint(d,
f),new mxPoint(d,e)],this.isRounded,l,!0);b.end()};mxCellRenderer.registerShape("doubleArrow",na);mxUtils.extend(ha,mxActor);ha.prototype.size=.1;ha.prototype.fixedSize=20;ha.prototype.redrawPath=function(b,d,g,c,e){d="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):c*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.moveTo(d,0);b.lineTo(c,0);b.quadTo(c-2*d,e/2,c,e);b.lineTo(d,
-e);b.quadTo(d-2*d,e/2,d,0);b.close();b.end()};mxCellRenderer.registerShape("dataStorage",ha);mxUtils.extend(ua,mxActor);ua.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.close();b.end()};mxCellRenderer.registerShape("or",ua);mxUtils.extend(P,mxActor);P.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.quadTo(c/2,e/2,0,0);b.close();b.end()};mxCellRenderer.registerShape("xor",P);mxUtils.extend(ea,mxActor);ea.prototype.size=
+e);b.quadTo(d-2*d,e/2,d,0);b.close();b.end()};mxCellRenderer.registerShape("dataStorage",ha);mxUtils.extend(ua,mxActor);ua.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.close();b.end()};mxCellRenderer.registerShape("or",ua);mxUtils.extend(O,mxActor);O.prototype.redrawPath=function(b,d,g,c,e){b.moveTo(0,0);b.quadTo(c,0,c,e/2);b.quadTo(c,e,0,e);b.quadTo(c/2,e/2,0,0);b.close();b.end()};mxCellRenderer.registerShape("xor",O);mxUtils.extend(ea,mxActor);ea.prototype.size=
20;ea.prototype.isRoundable=function(){return!0};ea.prototype.redrawPath=function(b,d,g,c,e){d=Math.min(c/2,Math.min(e,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(d,0),new mxPoint(c-d,0),new mxPoint(c,.8*d),new mxPoint(c,e),new mxPoint(0,e),new mxPoint(0,.8*d)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("loopLimit",ea);mxUtils.extend(ta,mxActor);ta.prototype.size=
.375;ta.prototype.isRoundable=function(){return!0};ta.prototype.redrawPath=function(b,d,g,c,e){d=e*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));g=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(b,[new mxPoint(0,0),new mxPoint(c,0),new mxPoint(c,e-d),new mxPoint(c/2,e),new mxPoint(0,e-d)],this.isRounded,g,!0);b.end()};mxCellRenderer.registerShape("offPageConnector",ta);mxUtils.extend(ya,mxEllipse);ya.prototype.paintVertexShape=
function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.begin();b.moveTo(d+c/2,g+e);b.lineTo(d+c,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("tapeData",ya);mxUtils.extend(pa,mxEllipse);pa.prototype.paintVertexShape=function(b,d,g,c,e){mxEllipse.prototype.paintVertexShape.apply(this,arguments);b.setShadow(!1);b.begin();b.moveTo(d,g+e/2);b.lineTo(d+c,g+e/2);b.end();b.stroke();b.begin();b.moveTo(d+c/2,g);b.lineTo(d+c/2,g+e);b.end();b.stroke()};mxCellRenderer.registerShape("orEllipse",
@@ -2831,54 +2834,54 @@ type:"enum",defVal:"south",enumList:[{val:"south",dispName:"South"},{val:"west",
{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"topRightStyle",dispName:"Top Right Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomRightStyle",dispName:"Bottom Right Style",
type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]},{name:"bottomLeftStyle",dispName:"Bottom Left Style",type:"enum",defVal:"default",enumList:[{val:"default",dispName:"Default"},{val:"square",dispName:"Square"},{val:"rounded",dispName:"Round"},{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",
dispName:"Fold"}]}];Y.prototype.paintVertexShape=function(b,d,g,c,e){b.translate(d,g);this.strictDrawShape(b,0,0,c,e)};Y.prototype.strictDrawShape=function(b,d,g,c,e,f){var l=f&&f.rectStyle?f.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),k=f&&f.absoluteCornerSize?f.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),m=f&&f.size?f.size:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),q=f&&f.rectOutline?f.rectOutline:
-mxUtils.getValue(this.style,"rectOutline",this.rectOutline),n=f&&f.indent?f.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),G=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),A=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,n)),u=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),p=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),B=f&&f.bottom?f.bottom:
+mxUtils.getValue(this.style,"rectOutline",this.rectOutline),n=f&&f.indent?f.indent:Math.max(0,Math.min(c,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),G=f&&f.dashed?f.dashed:mxUtils.getValue(this.style,"dashed",!1),A=f&&f.dashPattern?f.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),v=f&&f.relIndent?f.relIndent:Math.max(0,Math.min(50,n)),u=f&&f.top?f.top:mxUtils.getValue(this.style,"top",!0),B=f&&f.right?f.right:mxUtils.getValue(this.style,"right",!0),p=f&&f.bottom?f.bottom:
mxUtils.getValue(this.style,"bottom",!0),x=f&&f.left?f.left:mxUtils.getValue(this.style,"left",!0),I=f&&f.topLeftStyle?f.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),t=f&&f.topRightStyle?f.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),y=f&&f.bottomRightStyle?f.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),z=f&&f.bottomLeftStyle?f.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),S=f&&f.fillColor?f.fillColor:
-mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var C=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),L=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),ca=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),V=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),Da=f&&f.opacity?f.opacity:
-mxUtils.getValue(this.style,"opacity","100"),va=Math.max(0,Math.min(50,m));f=Y.prototype;b.setDashed(G);A&&""!=A&&b.setDashPattern(A);b.setStrokeWidth(C);m=Math.min(.5*e,.5*c,m);k||(m=va*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(n=Math.min(v*Math.min(c,e)/100));n=Math.min(n,.5*Math.min(c,e)-m);(u||p||B||x)&&"frame"!=q&&(b.begin(),u?f.moveNW(b,d,g,c,e,l,I,m,x):b.moveTo(0,0),u&&f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),p&&f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,
-c,e,l,y,m,B),B&&f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),x&&f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(L),G=k=Da,"none"==L&&(k=0),"none"==ca&&(G=0),b.setGradient(L,ca,0,0,c,e,V,k,G),b.begin(),u?f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x):b.moveTo(n,0),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),x&&B&&f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),B&&p&&f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,
-d,g,c,e,l,t,m,n,u,p),p&&u&&f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),u&&x&&f.paintNWInner(b,d,g,c,e,l,I,m,n),b.fill(),"none"==S&&(b.begin(),f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,p,B,x),b.stroke()));u||p||B||!x?u||p||!B||x?!u&&!p&&B&&x?"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,
-d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),b.close(),b.fillAndStroke()):u||!p||B||x?!u&&p&&!B&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==
-q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x)),b.stroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),b.close(),b.fillAndStroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,
-l,y,m,B),f.lineSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u&&p&&B&&!x?"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,
-d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u&&p&&B&&x?"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,
-d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,
-d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):!u||p||B||x?u&&!p&&!B&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x)),b.stroke()):
-(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.lineNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),b.close(),b.fillAndStroke()):u&&!p&&B&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke(),b.begin(),
-f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.lineNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke(),b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),b.close(),b.fillAndStroke()):
-u&&!p&&B&&x?"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,
-m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.lineNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),b.close(),b.fillAndStroke()):u&&p&&!B&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,
-p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.lineSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,
-c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):u&&p&&!B&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x)),b.stroke()):
-(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.lineSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),b.close(),b.fillAndStroke()):u&&p&&B&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,
-x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,
-m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):u&&p&&B&&x&&("frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,
-u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,
-e,l,z,m,n,B,x),b.close()),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.paintSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,B),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,
-e,l,t,m,n,u,p),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),b.close(),b.fillAndStroke())):"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,p),f.lineNEInner(b,d,g,c,e,l,t,m,n,p),f.paintTopInner(b,d,g,c,
-e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,B),f.lineSEInner(b,d,g,c,e,l,y,m,n,B),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,p),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&
-(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,p),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,p,B),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,B),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,B),f.paintLeft(b,
-d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,B,x),b.close(),b.fillAndStroke());b.begin();f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,p,B,x);b.stroke()};Y.prototype.moveNW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,0):b.moveTo(0,m)};Y.prototype.moveNE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(c,0):b.moveTo(c-m,0)};Y.prototype.moveSE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&
+mxUtils.getValue(this.style,"fillColor","#ffffff");f&&f.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var C=f&&f.strokeWidth?f.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),M=f&&f.fillColor2?f.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),ca=f&&f.gradientColor2?f.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),V=f&&f.gradientDirection2?f.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),Da=f&&f.opacity?f.opacity:
+mxUtils.getValue(this.style,"opacity","100"),va=Math.max(0,Math.min(50,m));f=Y.prototype;b.setDashed(G);A&&""!=A&&b.setDashPattern(A);b.setStrokeWidth(C);m=Math.min(.5*e,.5*c,m);k||(m=va*Math.min(c,e)/100);m=Math.min(m,.5*Math.min(c,e));k||(n=Math.min(v*Math.min(c,e)/100));n=Math.min(n,.5*Math.min(c,e)-m);(u||B||p||x)&&"frame"!=q&&(b.begin(),u?f.moveNW(b,d,g,c,e,l,I,m,x):b.moveTo(0,0),u&&f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),B&&f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,
+c,e,l,y,m,p),p&&f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),x&&f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),b.fill(),b.setShadow(!1),b.setFillColor(M),G=k=Da,"none"==M&&(k=0),"none"==ca&&(G=0),b.setGradient(M,ca,0,0,c,e,V,k,G),b.begin(),u?f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x):b.moveTo(n,0),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),x&&p&&f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),p&&B&&f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,
+d,g,c,e,l,t,m,n,u,B),B&&u&&f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),u&&x&&f.paintNWInner(b,d,g,c,e,l,I,m,n),b.fill(),"none"==S&&(b.begin(),f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,B,p,x),b.stroke()));u||B||p||!x?u||B||!p||x?!u&&!B&&p&&x?"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,
+d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),b.close(),b.fillAndStroke()):u||!B||p||x?!u&&B&&!p&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==
+q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x)),b.stroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),b.close(),b.fillAndStroke(),b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,
+l,y,m,p),f.lineSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),b.close(),b.fillAndStroke()):!u&&B&&p&&!x?"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,
+d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),b.close(),b.fillAndStroke()):!u&&B&&p&&x?"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,
+d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,
+d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),b.close(),b.fillAndStroke()):!u||B||p||x?u&&!B&&!p&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x)),b.stroke()):
+(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.lineNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),b.close(),b.fillAndStroke()):u&&!B&&p&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke(),b.begin(),
+f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.lineNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke(),b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),b.close(),b.fillAndStroke()):
+u&&!B&&p&&x?"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,
+m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.lineNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),b.close(),b.fillAndStroke()):u&&B&&!p&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,
+B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.lineSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,
+c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):u&&B&&!p&&x?"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x)),b.stroke()):
+(b.begin(),f.moveSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.lineSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),b.close(),b.fillAndStroke()):u&&B&&p&&!x?"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,
+x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,
+m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):u&&B&&p&&x&&("frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,
+u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),"double"==q&&(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,
+e,l,z,m,n,p,x),b.close()),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.paintNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.paintSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.paintSW(b,d,g,c,e,l,z,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),b.close(),f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintSWInner(b,d,g,c,e,l,z,m,n,p),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),f.paintSEInner(b,d,g,c,e,l,y,m,n),f.paintRightInner(b,d,g,c,
+e,l,t,m,n,u,B),f.paintNEInner(b,d,g,c,e,l,t,m,n),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u),f.paintNWInner(b,d,g,c,e,l,I,m,n),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),b.close(),b.fillAndStroke())):"frame"!=q?(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),"double"==q&&(f.moveNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,e,l,I,m,n,x,u)),b.stroke()):(b.begin(),f.moveNW(b,d,g,c,e,l,I,m,x),f.paintTop(b,d,g,c,e,l,t,m,B),f.lineNEInner(b,d,g,c,e,l,t,m,n,B),f.paintTopInner(b,d,g,c,
+e,l,I,m,n,x,u),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),"double"==q&&(f.moveSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B)),b.stroke()):(b.begin(),f.moveNE(b,d,g,c,e,l,t,m,u),f.paintRight(b,d,g,c,e,l,y,m,p),f.lineSEInner(b,d,g,c,e,l,y,m,n,p),f.paintRightInner(b,d,g,c,e,l,t,m,n,u,B),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),"double"==q&&
+(f.moveSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p)),b.stroke()):(b.begin(),f.moveSE(b,d,g,c,e,l,y,m,B),f.paintBottom(b,d,g,c,e,l,z,m,x),f.lineSWInner(b,d,g,c,e,l,z,m,n,x),f.paintBottomInner(b,d,g,c,e,l,y,m,n,B,p),b.close(),b.fillAndStroke()):"frame"!=q?(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,p),f.paintLeft(b,d,g,c,e,l,I,m,u),"double"==q&&(f.moveNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x)),b.stroke()):(b.begin(),f.moveSW(b,d,g,c,e,l,I,m,p),f.paintLeft(b,
+d,g,c,e,l,I,m,u),f.lineNWInner(b,d,g,c,e,l,I,m,n,u,x),f.paintLeftInner(b,d,g,c,e,l,z,m,n,p,x),b.close(),b.fillAndStroke());b.begin();f.paintFolds(b,d,g,c,e,l,I,t,y,z,m,u,B,p,x);b.stroke()};Y.prototype.moveNW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,0):b.moveTo(0,m)};Y.prototype.moveNE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(c,0):b.moveTo(c-m,0)};Y.prototype.moveSE=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&
"square"==f||!k?b.moveTo(c,e):b.moveTo(c,e-m)};Y.prototype.moveSW=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.moveTo(0,e):b.moveTo(m,e)};Y.prototype.paintNW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,m,0)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(m,0);else b.lineTo(0,0)};Y.prototype.paintTop=
function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(c,0):b.lineTo(c-m,0)};Y.prototype.paintNE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c,m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c,m);else b.lineTo(c,0)};Y.prototype.paintRight=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==
l&&"square"==f||!k?b.lineTo(c,e):b.lineTo(c,e-m)};Y.prototype.paintLeft=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,0):b.lineTo(0,m)};Y.prototype.paintSE=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,c-m,e)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-m,e);else b.lineTo(c,
e)};Y.prototype.paintBottom=function(b,d,g,c,e,f,l,m,k){"square"==l||"default"==l&&"square"==f||!k?b.lineTo(0,e):b.lineTo(m,e)};Y.prototype.paintSW=function(b,d,g,c,e,f,l,m,k){if(k)if("rounded"==l||"default"==l&&"rounded"==f||"invRound"==l||"default"==l&&"invRound"==f){d=0;if("rounded"==l||"default"==l&&"rounded"==f)d=1;b.arcTo(m,m,0,0,d,0,e-m)}else("snip"==l||"default"==l&&"snip"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(0,e-m);else b.lineTo(0,e)};Y.prototype.paintNWInner=function(b,d,g,
-c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};Y.prototype.paintTopInner=function(b,d,g,c,e,f,l,m,k,n,q){n||q?!n&&q?b.lineTo(0,k):n&&!q?b.lineTo(k,0):n?"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&
+c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,k,.5*k+m);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,k,k+m);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(k,.5*k+m);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,k+m),b.lineTo(k,k+m)};Y.prototype.paintTopInner=function(b,d,g,c,e,f,l,m,k,q,n){q||n?!q&&n?b.lineTo(0,k):q&&!n?b.lineTo(k,0):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&
"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(m+.5*k,k):b.lineTo(m+k,k):b.lineTo(0,k):b.lineTo(0,0)};Y.prototype.paintNEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-m-.5*k,k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-m-k,k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-m-.5*k,k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,m+k),b.lineTo(c-m-k,k)};Y.prototype.paintRightInner=
-function(b,d,g,c,e,f,l,m,k,n,q){n||q?!n&&q?b.lineTo(c-k,0):n&&!q?b.lineTo(c,k):n?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};Y.prototype.paintLeftInner=function(b,d,g,c,e,f,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,e):n&&!q?b.lineTo(0,e-k):n?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
+function(b,d,g,c,e,f,l,m,k,q,n){q||n?!q&&n?b.lineTo(c-k,0):q&&!n?b.lineTo(c,k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,m+.5*k):b.lineTo(c-k,m+k):b.lineTo(c-k,0):b.lineTo(c,0)};Y.prototype.paintLeftInner=function(b,d,g,c,e,f,l,m,k,q,n){q||n?!q&&n?b.lineTo(k,e):q&&!n?b.lineTo(0,e-k):q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
l&&"snip"==f?b.lineTo(k,e-m-.5*k):b.lineTo(k,e-m-k):b.lineTo(k,e):b.lineTo(0,e)};Y.prototype.paintSEInner=function(b,d,g,c,e,f,l,m,k){if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,c-k,e-m-.5*k);else if("invRound"==l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,c-k,e-m-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(c-k,e-m-.5*k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(c-m-k,e-m-k),b.lineTo(c-k,e-m-k)};Y.prototype.paintBottomInner=function(b,d,g,c,
-e,f,l,m,k,n,q){n||q?!n&&q?b.lineTo(c,e-k):n&&!q?b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==f||!n?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};Y.prototype.paintSWInner=function(b,d,g,c,e,f,l,m,k,n){if(!n)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==f)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==
-l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};Y.prototype.moveSWInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,
-e-m-k):b.moveTo(0,e-k)};Y.prototype.lineSWInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};Y.prototype.moveSEInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==
-f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};Y.prototype.lineSEInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
-k,e)};Y.prototype.moveNEInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f||n?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};Y.prototype.lineNEInner=function(b,d,g,c,e,f,l,m,k,n){n?"square"==l||"default"==l&&"square"==f||n?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
-l&&"snip"==f?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};Y.prototype.moveNWInner=function(b,d,g,c,e,f,l,m,k,n,q){n||q?!n&&q?b.moveTo(k,0):n&&!q?b.moveTo(0,k):"square"==l||"default"==l&&"square"==f?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,m+k):b.moveTo(0,
-0)};Y.prototype.lineNWInner=function(b,d,g,c,e,f,l,m,k,n,q){n||q?!n&&q?b.lineTo(k,0):n&&!q?b.lineTo(0,k):"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,m+k):b.lineTo(0,0)};Y.prototype.paintFolds=function(b,d,g,c,e,f,l,m,k,n,q,G,u,v,p){if("fold"==f||"fold"==l||"fold"==m||"fold"==k||"fold"==n)("fold"==l||"default"==
-l&&"fold"==f)&&G&&p&&(b.moveTo(0,q),b.lineTo(q,q),b.lineTo(q,0)),("fold"==m||"default"==m&&"fold"==f)&&G&&u&&(b.moveTo(c-q,0),b.lineTo(c-q,q),b.lineTo(c,q)),("fold"==k||"default"==k&&"fold"==f)&&v&&u&&(b.moveTo(c-q,e),b.lineTo(c-q,e-q),b.lineTo(c,e-q)),("fold"==n||"default"==n&&"fold"==f)&&v&&p&&(b.moveTo(0,e-q),b.lineTo(q,e-q),b.lineTo(q,e))};mxCellRenderer.registerShape(Y.prototype.cst.RECT2,Y);Y.prototype.constraints=null;mxUtils.extend(Fa,mxConnector);Fa.prototype.origPaintEdgeShape=Fa.prototype.paintEdgeShape;
+e,f,l,m,k,q,n){q||n?!q&&n?b.lineTo(c,e-k):q&&!n?b.lineTo(c-k,e):"square"==l||"default"==l&&"square"==f||!q?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-m-.5*k,e-k):b.lineTo(c-m-k,e-k):b.lineTo(c,e)};Y.prototype.paintSWInner=function(b,d,g,c,e,f,l,m,k,q){if(!q)b.lineTo(k,e);else if("square"==l||"default"==l&&"square"==f)b.lineTo(k,e-k);else if("rounded"==l||"default"==l&&"rounded"==f)b.arcTo(m-.5*k,m-.5*k,0,0,0,m+.5*k,e-k);else if("invRound"==
+l||"default"==l&&"invRound"==f)b.arcTo(m+k,m+k,0,0,1,m+k,e-k);else if("snip"==l||"default"==l&&"snip"==f)b.lineTo(m+.5*k,e-k);else if("fold"==l||"default"==l&&"fold"==f)b.lineTo(k+m,e-m-k),b.lineTo(k+m,e-k)};Y.prototype.moveSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,
+e-m-k):b.moveTo(0,e-k)};Y.prototype.lineSWInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,e-m-k):b.lineTo(0,e-k)};Y.prototype.moveSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.moveTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==
+f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,e-m-k):b.moveTo(c-k,e)};Y.prototype.lineSEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f?b.lineTo(c-k,e-k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(c-k,e-m-.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,e-m-k):b.lineTo(c-
+k,e)};Y.prototype.moveNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.moveTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(c-k,m+k):b.moveTo(c,k)};Y.prototype.lineNEInner=function(b,d,g,c,e,f,l,m,k,q){q?"square"==l||"default"==l&&"square"==f||q?b.lineTo(c-k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==
+l&&"snip"==f?b.lineTo(c-k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(c-k,m+k):b.lineTo(c,k)};Y.prototype.moveNWInner=function(b,d,g,c,e,f,l,m,k,q,n){q||n?!q&&n?b.moveTo(k,0):q&&!n?b.moveTo(0,k):"square"==l||"default"==l&&"square"==f?b.moveTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.moveTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.moveTo(k,m+k):b.moveTo(0,
+0)};Y.prototype.lineNWInner=function(b,d,g,c,e,f,l,m,k,q,n){q||n?!q&&n?b.lineTo(k,0):q&&!n?b.lineTo(0,k):"square"==l||"default"==l&&"square"==f?b.lineTo(k,k):"rounded"==l||"default"==l&&"rounded"==f||"snip"==l||"default"==l&&"snip"==f?b.lineTo(k,m+.5*k):("invRound"==l||"default"==l&&"invRound"==f||"fold"==l||"default"==l&&"fold"==f)&&b.lineTo(k,m+k):b.lineTo(0,0)};Y.prototype.paintFolds=function(b,d,g,c,e,f,l,m,k,q,n,G,u,v,B){if("fold"==f||"fold"==l||"fold"==m||"fold"==k||"fold"==q)("fold"==l||"default"==
+l&&"fold"==f)&&G&&B&&(b.moveTo(0,n),b.lineTo(n,n),b.lineTo(n,0)),("fold"==m||"default"==m&&"fold"==f)&&G&&u&&(b.moveTo(c-n,0),b.lineTo(c-n,n),b.lineTo(c,n)),("fold"==k||"default"==k&&"fold"==f)&&v&&u&&(b.moveTo(c-n,e),b.lineTo(c-n,e-n),b.lineTo(c,e-n)),("fold"==q||"default"==q&&"fold"==f)&&v&&B&&(b.moveTo(0,e-n),b.lineTo(n,e-n),b.lineTo(n,e))};mxCellRenderer.registerShape(Y.prototype.cst.RECT2,Y);Y.prototype.constraints=null;mxUtils.extend(Fa,mxConnector);Fa.prototype.origPaintEdgeShape=Fa.prototype.paintEdgeShape;
Fa.prototype.paintEdgeShape=function(b,d,g){for(var c=[],e=0;e<d.length;e++)c.push(mxUtils.clone(d[e]));var e=b.state.dashed,f=b.state.fixDash;Fa.prototype.origPaintEdgeShape.apply(this,[b,c,g]);3<=b.state.strokeWidth&&(c=mxUtils.getValue(this.style,"fillColor",null),null!=c&&(b.setStrokeColor(c),b.setStrokeWidth(b.state.strokeWidth-2),b.setDashed(e,f),Fa.prototype.origPaintEdgeShape.apply(this,[b,d,g])))};mxCellRenderer.registerShape("filledEdge",Fa);"undefined"!==typeof StyleFormatPanel&&function(){var b=
-StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.editorUi.getSelectionState(),g=b.apply(this,arguments);"umlFrame"==d.style.shape&&g.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return g}}();mxMarker.addMarker("dash",function(b,d,g,c,e,f,l,m,k,n){var q=e*(l+k+1),G=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-G/2,c.y-G/2+q/2);b.lineTo(c.x+G/2-3*q/2,c.y-3*G/2-q/2);b.stroke()}});mxMarker.addMarker("box",
-function(b,d,g,c,e,f,l,m,k,n){var q=e*(l+k+1),G=f*(l+k+1),u=c.x+q/2,v=c.y+G/2;c.x-=q;c.y-=G;return function(){b.begin();b.moveTo(u-q/2-G/2,v-G/2+q/2);b.lineTo(u-q/2+G/2,v-G/2-q/2);b.lineTo(u+G/2-3*q/2,v-3*G/2-q/2);b.lineTo(u-G/2-3*q/2,v-3*G/2+q/2);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,g,c,e,f,l,m,k,n){var q=e*(l+k+1),G=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-q/2-G/2,c.y-G/2+q/2);b.lineTo(c.x+G/2-3*q/2,c.y-3*G/2-q/2);b.moveTo(c.x-q/2+G/2,c.y-
-G/2-q/2);b.lineTo(c.x-G/2-3*q/2,c.y-3*G/2+q/2);b.stroke()}});mxMarker.addMarker("circle",Na);mxMarker.addMarker("circlePlus",function(b,d,g,c,e,f,l,m,k,n){var q=c.clone(),G=Na.apply(this,arguments),u=e*(l+2*k),v=f*(l+2*k);return function(){G.apply(this,arguments);b.begin();b.moveTo(q.x-e*k,q.y-f*k);b.lineTo(q.x-2*u+e*k,q.y-2*v+f*k);b.moveTo(q.x-u-v+f*k,q.y-v+u-e*k);b.lineTo(q.x+v-u-f*k,q.y-v-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,g,c,e,f,l,m,k,q){var n=e*(l+k+1),G=f*(l+
-k+1),u=c.clone();c.x-=n;c.y-=G;return function(){b.begin();b.moveTo(u.x-G,u.y+n);b.quadTo(c.x-G,c.y+n,c.x,c.y);b.quadTo(c.x+G,c.y-n,u.x+G,u.y-n);b.stroke()}});mxMarker.addMarker("async",function(b,d,g,c,e,f,l,m,k,n){d=e*k*1.118;g=f*k*1.118;e*=l+k;f*=l+k;var q=c.clone();q.x-=d;q.y-=g;c.x+=1*-e-d;c.y+=1*-f-g;return function(){b.begin();b.moveTo(q.x,q.y);m?b.lineTo(q.x-e-f/2,q.y-f+e/2):b.lineTo(q.x+f/2-e,q.y-f-e/2);b.lineTo(q.x-e,q.y-f);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
+StyleFormatPanel.prototype.getCustomColors;StyleFormatPanel.prototype.getCustomColors=function(){var d=this.editorUi.getSelectionState(),g=b.apply(this,arguments);"umlFrame"==d.style.shape&&g.push({title:mxResources.get("laneColor"),key:"swimlaneFillColor",defaultValue:"#ffffff"});return g}}();mxMarker.addMarker("dash",function(b,d,g,c,e,f,l,m,k,q){var n=e*(l+k+1),G=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-n/2-G/2,c.y-G/2+n/2);b.lineTo(c.x+G/2-3*n/2,c.y-3*G/2-n/2);b.stroke()}});mxMarker.addMarker("box",
+function(b,d,g,c,e,f,l,m,k,q){var n=e*(l+k+1),G=f*(l+k+1),u=c.x+n/2,v=c.y+G/2;c.x-=n;c.y-=G;return function(){b.begin();b.moveTo(u-n/2-G/2,v-G/2+n/2);b.lineTo(u-n/2+G/2,v-G/2-n/2);b.lineTo(u+G/2-3*n/2,v-3*G/2-n/2);b.lineTo(u-G/2-3*n/2,v-3*G/2+n/2);b.close();q?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("cross",function(b,d,g,c,e,f,l,m,k,q){var n=e*(l+k+1),G=f*(l+k+1);return function(){b.begin();b.moveTo(c.x-n/2-G/2,c.y-G/2+n/2);b.lineTo(c.x+G/2-3*n/2,c.y-3*G/2-n/2);b.moveTo(c.x-n/2+G/2,c.y-
+G/2-n/2);b.lineTo(c.x-G/2-3*n/2,c.y-3*G/2+n/2);b.stroke()}});mxMarker.addMarker("circle",Na);mxMarker.addMarker("circlePlus",function(b,d,g,c,e,f,l,m,k,q){var n=c.clone(),G=Na.apply(this,arguments),u=e*(l+2*k),v=f*(l+2*k);return function(){G.apply(this,arguments);b.begin();b.moveTo(n.x-e*k,n.y-f*k);b.lineTo(n.x-2*u+e*k,n.y-2*v+f*k);b.moveTo(n.x-u-v+f*k,n.y-v+u-e*k);b.lineTo(n.x+v-u-f*k,n.y-v-u+e*k);b.stroke()}});mxMarker.addMarker("halfCircle",function(b,d,g,c,e,f,l,m,k,n){var q=e*(l+k+1),G=f*(l+
+k+1),u=c.clone();c.x-=q;c.y-=G;return function(){b.begin();b.moveTo(u.x-G,u.y+q);b.quadTo(c.x-G,c.y+q,c.x,c.y);b.quadTo(c.x+G,c.y-q,u.x+G,u.y-q);b.stroke()}});mxMarker.addMarker("async",function(b,d,g,c,e,f,l,m,k,n){d=e*k*1.118;g=f*k*1.118;e*=l+k;f*=l+k;var q=c.clone();q.x-=d;q.y-=g;c.x+=1*-e-d;c.y+=1*-f-g;return function(){b.begin();b.moveTo(q.x,q.y);m?b.lineTo(q.x-e-f/2,q.y-f+e/2):b.lineTo(q.x+f/2-e,q.y-f-e/2);b.lineTo(q.x-e,q.y-f);b.close();n?b.fillAndStroke():b.stroke()}});mxMarker.addMarker("openAsync",
function(b){b=null!=b?b:2;return function(d,g,c,e,f,l,m,k,q,n){f*=m+q;l*=m+q;var G=e.clone();return function(){d.begin();d.moveTo(G.x,G.y);k?d.lineTo(G.x-f-l/b,G.y-l+f/b):d.lineTo(G.x+l/b-f,G.y-l-f/b);d.stroke()}}}(2));if("undefined"!==typeof mxVertexHandler){var $a=function(b,d,g){return Ma(b,["width"],d,function(d,c,e,f,l){l=b.shape.getEdgeWidth()*b.view.scale+g;return new mxPoint(f.x+c*d/4+e*l/2,f.y+e*d/4-c*l/2)},function(d,c,e,f,l,m){d=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));b.style.width=
Math.round(2*d)/b.view.scale-g})},Ma=function(b,d,g,c,e){return ga(b,d,function(d){var e=b.absolutePoints,f=e.length-1;d=b.view.translate;var l=b.view.scale,m=g?e[0]:e[f],e=g?e[1]:e[f-1],f=e.x-m.x,k=e.y-m.y,q=Math.sqrt(f*f+k*k),m=c.call(this,q,f/q,k/q,m,e);return new mxPoint(m.x/l-d.x,m.y/l-d.y)},function(d,c,f){var l=b.absolutePoints,m=l.length-1;d=b.view.translate;var k=b.view.scale,q=g?l[0]:l[m],l=g?l[1]:l[m-1],m=l.x-q.x,n=l.y-q.y,G=Math.sqrt(m*m+n*n);c.x=(c.x+d.x)*k;c.y=(c.y+d.y)*k;e.call(this,
G,m/G,n/G,q,l,c,f)})},Ha=function(b){return function(d){return[ga(d,["arrowWidth","arrowSize"],function(d){var g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"arrowWidth",da.prototype.arrowWidth))),c=Math.max(0,Math.min(b,mxUtils.getValue(this.state.style,"arrowSize",da.prototype.arrowSize)));return new mxPoint(d.x+(1-c)*d.width,d.y+(1-g)*d.height/2)},function(d,g){this.state.style.arrowWidth=Math.max(0,Math.min(1,Math.abs(d.y+d.height/2-g.y)/d.height*2));this.state.style.arrowSize=Math.max(0,
@@ -2890,90 +2893,90 @@ c*(g?1:d.width))),d.getCenterY())},function(b,d,c){b=null!=e&&"0"!=mxUtils.getVa
e),g.y+c)},function(d,g,c){"1"==mxUtils.getValue(b.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.max(0,Math.min(d.width,2*(d.x+d.width-g.x)))):this.state.style[mxConstants.STYLE_ARCSIZE]=Math.round(Math.min(50,Math.max(0,100*(d.width-g.x+d.x)/Math.min(d.width,d.height))))})},ga=function(b,d,g,c,e,f,l){var m=new mxHandle(b,null,mxVertexHandler.prototype.secondaryHandleImage);m.execute=function(b){for(var g=0;g<d.length;g++)this.copyStyle(d[g]);
l&&l(b)};m.getPosition=g;m.setPosition=c;m.ignoreGrid=null!=e?e:!0;if(f){var k=m.positionChanged;m.positionChanged=function(){k.apply(this,arguments);b.view.invalidate(this.state.cell);b.view.validate()}}return m},Pa={link:function(b){return[$a(b,!0,10),$a(b,!1,10)]},flexArrow:function(b){var d=b.view.graph.gridSize/b.view.scale,g=[];mxUtils.getValue(b.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(g.push(Ma(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
!0,function(d,g,c,e,f){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)-g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/
-3)/100/b.view.scale;b.style.width=Math.round(2*g)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),g.push(Ma(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!0,function(d,
-g,c,e,f){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)-g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/
-100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*g)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]),Math.abs(parseFloat(b.style.startWidth)-
-parseFloat(b.style.endWidth))<d&&(b.style.startWidth=b.style.endWidth))})));mxUtils.getValue(b.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(g.push(Ma(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,g,c,e,f){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(f+b.shape.strokewidth*
-b.view.scale)+g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*g)/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]);mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<
-d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),g.push(Ma(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,g,c,e,f){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*b.view.scale)-c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)+g*d/2)},function(g,c,e,f,l,m,k){g=
-Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*g)-b.shape.getEdgeWidth())/b.view.scale;mxEvent.isControlDown(k.getEvent())&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE],b.style.startWidth=b.style.endWidth);mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-
-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return g},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var g=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(Ga(b,g/2))}d.push(ga(b,[mxConstants.STYLE_STARTSIZE],
-function(d){var g=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),d.y+Math.max(0,Math.min(d.height,g))):new mxPoint(d.x+Math.max(0,Math.min(d.width,g)),d.getCenterY())},function(d,g){b.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,g.y-d.y))):Math.round(Math.max(0,
-Math.min(d.width,g.x-d.x)))},!1,null,function(d){if(mxEvent.isControlDown(d.getEvent())&&(d=b.view.graph,d.isTableRow(b.cell)||d.isTableCell(b.cell))){for(var g=d.getSwimlaneDirection(b.style),c=d.model.getParent(b.cell),c=d.model.getChildCells(c,!0),e=[],f=0;f<c.length;f++)c[f]!=b.cell&&d.isSwimlane(c[f])&&d.getSwimlaneDirection(d.getCurrentCellStyle(c[f]))==g&&e.push(c[f]);d.setCellStyles(mxConstants.STYLE_STARTSIZE,b.style[mxConstants.STYLE_STARTSIZE],e)}}));return d},label:La(),ext:La(),rectangle:La(),
-triangle:La(),rhombus:La(),umlLifeline:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},umlFrame:function(b){return[ga(b,["width","height"],function(b){var d=Math.max(V.prototype.corner,Math.min(b.width,mxUtils.getValue(this.state.style,"width",V.prototype.width))),
-g=Math.max(1.5*V.prototype.corner,Math.min(b.height,mxUtils.getValue(this.state.style,"height",V.prototype.height)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.width=Math.round(Math.max(V.prototype.corner,Math.min(b.width,d.x-b.x)));this.state.style.height=Math.round(Math.max(1.5*V.prototype.corner,Math.min(b.height,d.y-b.y)))},!1)]},process:function(b){var d=[ga(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),g=parseFloat(mxUtils.getValue(this.state.style,
-"size",J.prototype.size));return d?new mxPoint(b.x+g,b.y+b.height/4):new mxPoint(b.x+b.width*g,b.y+b.height/4)},function(b,d){var g="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*b.width,d.x-b.x)):Math.max(0,Math.min(.5,(d.x-b.x)/b.width));this.state.style.size=g},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},cross:function(b){return[ga(b,["size"],function(b){var d=Math.min(b.width,b.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"size",Ca.prototype.size)))*d/2;return new mxPoint(b.getCenterX()-d,b.getCenterY()-d)},function(b,d){var g=Math.min(b.width,b.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,b.getCenterY()-d.y)/g*2,Math.max(0,b.getCenterX()-d.x)/g*2)))})]},note:function(b){return[ga(b,["size"],function(b){var g=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size)))));return new mxPoint(b.x+b.width-g,b.y+g)},function(b,d){this.state.style.size=
-Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},note2:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size)))));return new mxPoint(b.x+b.width-d,b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},manualInput:function(b){var d=[ga(b,["size"],function(b){var d=
-Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",X.prototype.size)));return new mxPoint(b.x+b.width/4,b.y+3*d/4)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,4*(d.y-b.y)/3)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},dataStorage:function(b){return[ga(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),g=parseFloat(mxUtils.getValue(this.state.style,"size",d?ha.prototype.fixedSize:
-ha.prototype.size));return new mxPoint(b.x+b.width-g*(d?1:b.width),b.getCenterY())},function(b,d){var g="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(b.width,b.x+b.width-d.x)):Math.max(0,Math.min(1,(b.x+b.width-d.x)/b.width));this.state.style.size=g},!1)]},callout:function(b){var d=[ga(b,["size","position"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",K.prototype.size))),g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
-"position",K.prototype.position)));mxUtils.getValue(this.state.style,"base",K.prototype.base);return new mxPoint(b.x+g*b.width,b.y+b.height-d)},function(b,d){mxUtils.getValue(this.state.style,"base",K.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(b.height,b.y+b.height-d.y)));this.state.style.position=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ga(b,["position2"],function(b){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",K.prototype.position2)));
-return new mxPoint(b.x+d*b.width,b.y+b.height)},function(b,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ga(b,["base"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",K.prototype.size))),g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",K.prototype.position))),c=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"base",K.prototype.base)));return new mxPoint(b.x+Math.min(b.width,
-g*b.width+c),b.y+b.height-d)},function(b,d){var g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",K.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(b.width,d.x-b.x-g*b.width)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},internalStorage:function(b){var d=[ga(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",ma.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,
-"dy",ma.prototype.dy)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},module:function(b){return[ga(b,["jettyWidth","jettyHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"jettyWidth",la.prototype.jettyWidth))),g=Math.max(0,Math.min(b.height,
-mxUtils.getValue(this.state.style,"jettyHeight",la.prototype.jettyHeight)));return new mxPoint(b.x+d/2,b.y+2*g)},function(b,d){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y))/2)})]},corner:function(b){return[ga(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",qa.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,
-"dy",qa.prototype.dy)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},tee:function(b){return[ga(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",ia.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",ia.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+g)},function(b,
-d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Ha(1),doubleArrow:Ha(.5),folder:function(b){return[ga(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"tabWidth",u.prototype.tabWidth))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",u.prototype.tabHeight)));mxUtils.getValue(this.state.style,
-"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+g)},function(b,d){var g=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(g=b.width-g);this.state.style.tabWidth=Math.round(g);this.state.style.tabHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,
-"size",F.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},tape:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",x.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ga(b,
-["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",l.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Xa(q.prototype.size),cylinder3:Xa(m.prototype.size),offPageConnector:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ta.prototype.size))));
-return new mxPoint(b.getCenterX(),b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},"mxgraph.basic.rect":function(b){var d=[Graph.createHandle(b,["size"],function(b){var d=Math.max(0,Math.min(b.width/2,b.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));return new mxPoint(b.x+d,b.y+d)},function(b,d){this.state.style.size=Math.round(100*Math.max(0,Math.min(b.height/2,b.width/2,d.x-b.x)))/100})];b=Graph.createHandle(b,
-["indent"],function(b){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(b.x+.75*b.width,b.y+d*b.height/200)},function(b,d){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(d.y-b.y)/b.height)))/100});d.push(b);return d},step:Oa(M.prototype.size,!0,null,!0,M.prototype.fixedSize),hexagon:Oa(Z.prototype.size,!0,.5,!0,Z.prototype.fixedSize),curlyBracket:Oa(D.prototype.size,!1),display:Oa(wa.prototype.size,!1),cube:Va(1,
-e.prototype.size,!1),card:Va(.5,y.prototype.size,!0),loopLimit:Va(.5,ea.prototype.size,!0),trapezoid:Ya(.5,z.prototype.size,z.prototype.fixedSize),parallelogram:Ya(1,H.prototype.size,H.prototype.fixedSize)};Graph.createHandle=ga;Graph.handleFactory=Pa;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&
-null==mxStencilRegistry.getStencil(d)?d=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(d=mxConstants.SHAPE_SWIMLANE);d=Pa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Pa[mxConstants.SHAPE_RECTANGLE]);null!=d&&(d=d(this.state),null!=d&&(b=null==b?d:b.concat(d)))}return b};mxEdgeHandler.prototype.createCustomHandles=function(){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&null==mxStencilRegistry.getStencil(b)&&(b=mxConstants.SHAPE_CONNECTOR);
-b=Pa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Qa=new mxPoint(1,0),Ra=new mxPoint(1,0),Ha=mxUtils.toRadians(-30),Qa=mxUtils.getRotatedPoint(Qa,Math.cos(Ha),Math.sin(Ha)),Ha=mxUtils.toRadians(-150),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ha),Math.sin(Ha));mxEdgeStyle.IsometricConnector=function(b,d,g,c,e){var f=b.view;c=null!=c&&0<c.length?c[0]:null;var l=b.absolutePoints,m=l[0],l=l[l.length-1];null!=c&&(c=f.transformControlPoint(b,c));null==
-m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=g&&(l=new mxPoint(g.getCenterX(),g.getCenterY()));var k=Qa.x,q=Qa.y,n=Ra.x,G=Ra.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,g){b-=v.x;var c=d-v.y;d=(G*b-n*c)/(k*G-q*n);b=(q*b-k*c)/(q*n-k*G);u?(g&&(v=new mxPoint(v.x+k*d,v.y+q*d),e.push(v)),v=new mxPoint(v.x+n*b,v.y+G*b)):(g&&(v=new mxPoint(v.x+n*b,v.y+G*b),e.push(v)),v=new mxPoint(v.x+k*d,v.y+q*d));e.push(v)};var v=m;null==
-c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var g=new mxElbowEdgeHandler(b);g.snapToTerminals=!1;return g}return fb.apply(this,arguments)};f.prototype.constraints=[];p.prototype.getConstraints=function(b,d,g){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-
-c)/2,c=Math.min(d,g/(.5+c));d=(d-c)/2;g=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,g+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,g+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.75*c));return b};l.prototype.getConstraints=
-function(b,d,g){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,c=Math.min(d*Math.tan(c),.5*g);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));return b};K.prototype.getConstraints=function(b,d,g){b=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var c=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,"position",this.position));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,
-"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g-c)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
-d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-c)));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),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(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(0,1),!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(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];Ja.prototype.constraints=mxRectangleShape.prototype.constraints;
-mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;L.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;d.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};y.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};e.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,
-"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(d+c),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-c)));return b};m.prototype.getConstraints=function(b,d,g){b=[];d=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d+.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(1,
-0),!1,null,0,d+.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,g-d-.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-d-.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-d));b.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-d));return b};u.prototype.getConstraints=
-function(b,d,g){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(b.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e))):(b.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,.25*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,.75*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g));b.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return b};ma.prototype.constraints=mxRectangleShape.prototype.constraints;ha.prototype.constraints=mxRectangleShape.prototype.constraints;ya.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;
-xa.prototype.constraints=mxEllipse.prototype.constraints;Aa.prototype.constraints=mxEllipse.prototype.constraints;X.prototype.constraints=mxRectangleShape.prototype.constraints;Ka.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.getConstraints=function(b,d,g){b=[];var c=Math.min(d,g/2),e=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*d);b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));return b};la.prototype.getConstraints=function(b,d,g){d=parseFloat(mxUtils.getValue(b,
-"jettyWidth",la.prototype.jettyWidth))/2;b=parseFloat(mxUtils.getValue(b,"jettyHeight",la.prototype.jettyHeight));var c=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,d),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,d),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(g-.5*b,1.5*b)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(g-.5*b,3.5*b))];g>5*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,d));g>8*b&&c.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1,null,d));g>15*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,d));return c};ea.prototype.constraints=mxRectangleShape.prototype.constraints;ta.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)];G.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)];ja.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,
-.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)];x.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,
-.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];M.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,
-.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];oa.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)];H.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;F.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(b,d,g){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,
-"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*d+.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,.5*(d+c),.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d-.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return b};qa.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,g));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-1),!1));return b};T.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)];da.prototype.getConstraints=
-function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,
-.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));return b};na.prototype.getConstraints=function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,
-.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));return b};Ca.prototype.getConstraints=
-function(b,d,g){b=[];var c=Math.min(g,d),e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),c=(g-e)/2,f=c+e,l=(d-e)/2,e=l+e;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,0));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,e,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),c));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
-0),!1,null,0,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,c));return b};Q.prototype.constraints=null;ua.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)];P.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)];ka.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ra.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,
-.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(b){this.editorUi=b;this.actions={};this.init()}
+3)/100/b.view.scale;b.style.width=Math.round(2*g)/b.view.scale;if(mxEvent.isShiftDown(k.getEvent())||mxEvent.isControlDown(k.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE];mxEvent.isAltDown(k.getEvent())||Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE])})),g.push(Ma(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],
+!0,function(d,g,c,e,f){d=(b.shape.getStartArrowWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*b.view.scale)+c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)-g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_STARTSIZE]=Math.round(100*(c-b.shape.strokewidth)/
+3)/100/b.view.scale;b.style.startWidth=Math.max(0,Math.round(2*g)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(k.getEvent())||mxEvent.isControlDown(k.getEvent()))b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE],b.style.endWidth=b.style.startWidth;mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_STARTSIZE])-parseFloat(b.style[mxConstants.STYLE_ENDSIZE]))<d/6&&(b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE]),
+Math.abs(parseFloat(b.style.startWidth)-parseFloat(b.style.endWidth))<d&&(b.style.startWidth=b.style.endWidth))})));mxUtils.getValue(b.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(g.push(Ma(b,["width",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,g,c,e,f){d=(b.shape.getEdgeWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*
+b.view.scale)-c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)+g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.width=Math.round(2*g)/b.view.scale;if(mxEvent.isShiftDown(k.getEvent())||mxEvent.isControlDown(k.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE];mxEvent.isAltDown(k.getEvent())||
+Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE])})),g.push(Ma(b,["startWidth","endWidth",mxConstants.STYLE_STARTSIZE,mxConstants.STYLE_ENDSIZE],!1,function(d,g,c,e,f){d=(b.shape.getEndArrowWidth()-b.shape.strokewidth)*b.view.scale;f=3*mxUtils.getNumber(b.style,mxConstants.STYLE_ENDSIZE,mxConstants.ARROW_SIZE/5)*b.view.scale;return new mxPoint(e.x+g*(f+b.shape.strokewidth*
+b.view.scale)-c*d/2,e.y+c*(f+b.shape.strokewidth*b.view.scale)+g*d/2)},function(g,c,e,f,l,m,k){g=Math.sqrt(mxUtils.ptSegDistSq(f.x,f.y,l.x,l.y,m.x,m.y));c=mxUtils.ptLineDist(f.x,f.y,f.x+e,f.y-c,m.x,m.y);b.style[mxConstants.STYLE_ENDSIZE]=Math.round(100*(c-b.shape.strokewidth)/3)/100/b.view.scale;b.style.endWidth=Math.max(0,Math.round(2*g)-b.shape.getEdgeWidth())/b.view.scale;if(mxEvent.isShiftDown(k.getEvent())||mxEvent.isControlDown(k.getEvent()))b.style[mxConstants.STYLE_STARTSIZE]=b.style[mxConstants.STYLE_ENDSIZE],
+b.style.startWidth=b.style.endWidth;mxEvent.isAltDown(k.getEvent())||(Math.abs(parseFloat(b.style[mxConstants.STYLE_ENDSIZE])-parseFloat(b.style[mxConstants.STYLE_STARTSIZE]))<d/6&&(b.style[mxConstants.STYLE_ENDSIZE]=b.style[mxConstants.STYLE_STARTSIZE]),Math.abs(parseFloat(b.style.endWidth)-parseFloat(b.style.startWidth))<d&&(b.style.endWidth=b.style.startWidth))})));return g},swimlane:function(b){var d=[];if(mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED)){var g=parseFloat(mxUtils.getValue(b.style,
+mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));d.push(Ga(b,g/2))}d.push(ga(b,[mxConstants.STYLE_STARTSIZE],function(d){var g=parseFloat(mxUtils.getValue(b.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE));return 1==mxUtils.getValue(b.style,mxConstants.STYLE_HORIZONTAL,1)?new mxPoint(d.getCenterX(),d.y+Math.max(0,Math.min(d.height,g))):new mxPoint(d.x+Math.max(0,Math.min(d.width,g)),d.getCenterY())},function(d,g){b.style[mxConstants.STYLE_STARTSIZE]=1==mxUtils.getValue(this.state.style,
+mxConstants.STYLE_HORIZONTAL,1)?Math.round(Math.max(0,Math.min(d.height,g.y-d.y))):Math.round(Math.max(0,Math.min(d.width,g.x-d.x)))},!1,null,function(d){var g=b.view.graph;if(!mxEvent.isShiftDown(d.getEvent())&&!mxEvent.isControlDown(d.getEvent())&&(g.isTableRow(b.cell)||g.isTableCell(b.cell))){d=g.getSwimlaneDirection(b.style);for(var c=g.model.getParent(b.cell),c=g.model.getChildCells(c,!0),e=[],f=0;f<c.length;f++)c[f]!=b.cell&&g.isSwimlane(c[f])&&g.getSwimlaneDirection(g.getCurrentCellStyle(c[f]))==
+d&&e.push(c[f]);g.setCellStyles(mxConstants.STYLE_STARTSIZE,b.style[mxConstants.STYLE_STARTSIZE],e)}}));return d},label:La(),ext:La(),rectangle:La(),triangle:La(),rhombus:La(),umlLifeline:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",Q.prototype.size))));return new mxPoint(b.getCenterX(),b.y+d)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},umlFrame:function(b){return[ga(b,
+["width","height"],function(b){var d=Math.max(V.prototype.corner,Math.min(b.width,mxUtils.getValue(this.state.style,"width",V.prototype.width))),g=Math.max(1.5*V.prototype.corner,Math.min(b.height,mxUtils.getValue(this.state.style,"height",V.prototype.height)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.width=Math.round(Math.max(V.prototype.corner,Math.min(b.width,d.x-b.x)));this.state.style.height=Math.round(Math.max(1.5*V.prototype.corner,Math.min(b.height,d.y-b.y)))},!1)]},
+process:function(b){var d=[ga(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),g=parseFloat(mxUtils.getValue(this.state.style,"size",J.prototype.size));return d?new mxPoint(b.x+g,b.y+b.height/4):new mxPoint(b.x+b.width*g,b.y+b.height/4)},function(b,d){var g="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(.5*b.width,d.x-b.x)):Math.max(0,Math.min(.5,(d.x-b.x)/b.width));this.state.style.size=g},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,
+!1)&&d.push(Ga(b));return d},cross:function(b){return[ga(b,["size"],function(b){var d=Math.min(b.width,b.height),d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"size",Ca.prototype.size)))*d/2;return new mxPoint(b.getCenterX()-d,b.getCenterY()-d)},function(b,d){var g=Math.min(b.width,b.height);this.state.style.size=Math.max(0,Math.min(1,Math.min(Math.max(0,b.getCenterY()-d.y)/g*2,Math.max(0,b.getCenterX()-d.x)/g*2)))})]},note:function(b){return[ga(b,["size"],function(b){var g=Math.max(0,
+Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",d.prototype.size)))));return new mxPoint(b.x+b.width-g,b.y+g)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},note2:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.width,Math.min(b.height,parseFloat(mxUtils.getValue(this.state.style,"size",g.prototype.size)))));return new mxPoint(b.x+b.width-d,b.y+d)},
+function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(Math.min(b.width,b.x+b.width-d.x),Math.min(b.height,d.y-b.y))))})]},manualInput:function(b){var d=[ga(b,["size"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",X.prototype.size)));return new mxPoint(b.x+b.width/4,b.y+3*d/4)},function(b,d){this.state.style.size=Math.round(Math.max(0,Math.min(b.height,4*(d.y-b.y)/3)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));
+return d},dataStorage:function(b){return[ga(b,["size"],function(b){var d="0"!=mxUtils.getValue(this.state.style,"fixedSize","0"),g=parseFloat(mxUtils.getValue(this.state.style,"size",d?ha.prototype.fixedSize:ha.prototype.size));return new mxPoint(b.x+b.width-g*(d?1:b.width),b.getCenterY())},function(b,d){var g="0"!=mxUtils.getValue(this.state.style,"fixedSize","0")?Math.max(0,Math.min(b.width,b.x+b.width-d.x)):Math.max(0,Math.min(1,(b.x+b.width-d.x)/b.width));this.state.style.size=g},!1)]},callout:function(b){var d=
+[ga(b,["size","position"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",K.prototype.size))),g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",K.prototype.position)));mxUtils.getValue(this.state.style,"base",K.prototype.base);return new mxPoint(b.x+g*b.width,b.y+b.height-d)},function(b,d){mxUtils.getValue(this.state.style,"base",K.prototype.base);this.state.style.size=Math.round(Math.max(0,Math.min(b.height,b.y+b.height-d.y)));this.state.style.position=
+Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ga(b,["position2"],function(b){var d=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position2",K.prototype.position2)));return new mxPoint(b.x+d*b.width,b.y+b.height)},function(b,d){this.state.style.position2=Math.round(100*Math.max(0,Math.min(1,(d.x-b.x)/b.width)))/100},!1),ga(b,["base"],function(b){var d=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"size",K.prototype.size))),g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,
+"position",K.prototype.position))),c=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"base",K.prototype.base)));return new mxPoint(b.x+Math.min(b.width,g*b.width+c),b.y+b.height-d)},function(b,d){var g=Math.max(0,Math.min(1,mxUtils.getValue(this.state.style,"position",K.prototype.position)));this.state.style.base=Math.round(Math.max(0,Math.min(b.width,d.x-b.x-g*b.width)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},internalStorage:function(b){var d=
+[ga(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",ma.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",ma.prototype.dy)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)];mxUtils.getValue(b.style,mxConstants.STYLE_ROUNDED,!1)&&d.push(Ga(b));return d},module:function(b){return[ga(b,
+["jettyWidth","jettyHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"jettyWidth",la.prototype.jettyWidth))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"jettyHeight",la.prototype.jettyHeight)));return new mxPoint(b.x+d/2,b.y+2*g)},function(b,d){this.state.style.jettyWidth=Math.round(2*Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.jettyHeight=Math.round(Math.max(0,Math.min(b.height,d.y-b.y))/2)})]},corner:function(b){return[ga(b,
+["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,"dx",qa.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",qa.prototype.dy)));return new mxPoint(b.x+d,b.y+g)},function(b,d){this.state.style.dx=Math.round(Math.max(0,Math.min(b.width,d.x-b.x)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},tee:function(b){return[ga(b,["dx","dy"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,
+"dx",ia.prototype.dx))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"dy",ia.prototype.dy)));return new mxPoint(b.x+(b.width+d)/2,b.y+g)},function(b,d){this.state.style.dx=Math.round(Math.max(0,2*Math.min(b.width/2,d.x-b.x-b.width/2)));this.state.style.dy=Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},singleArrow:Ha(1),doubleArrow:Ha(.5),folder:function(b){return[ga(b,["tabWidth","tabHeight"],function(b){var d=Math.max(0,Math.min(b.width,mxUtils.getValue(this.state.style,
+"tabWidth",u.prototype.tabWidth))),g=Math.max(0,Math.min(b.height,mxUtils.getValue(this.state.style,"tabHeight",u.prototype.tabHeight)));mxUtils.getValue(this.state.style,"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(d=b.width-d);return new mxPoint(b.x+d,b.y+g)},function(b,d){var g=Math.max(0,Math.min(b.width,d.x-b.x));mxUtils.getValue(this.state.style,"tabPosition",u.prototype.tabPosition)==mxConstants.ALIGN_RIGHT&&(g=b.width-g);this.state.style.tabWidth=Math.round(g);this.state.style.tabHeight=
+Math.round(Math.max(0,Math.min(b.height,d.y-b.y)))},!1)]},document:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",F.prototype.size))));return new mxPoint(b.x+3*b.width/4,b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},tape:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",x.prototype.size))));
+return new mxPoint(b.getCenterX(),b.y+d*b.height/2)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(d.y-b.y)/b.height*2))},!1)]},isoCube2:function(b){return[ga(b,["isoAngle"],function(b){var d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",l.isoAngle))))*Math.PI/200;return new mxPoint(b.x,b.y+Math.min(b.width*Math.tan(d),.5*b.height))},function(b,d){this.state.style.isoAngle=Math.max(0,50*(d.y-b.y)/b.height)},!0)]},cylinder2:Xa(q.prototype.size),cylinder3:Xa(m.prototype.size),
+offPageConnector:function(b){return[ga(b,["size"],function(b){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"size",ta.prototype.size))));return new mxPoint(b.getCenterX(),b.y+(1-d)*b.height)},function(b,d){this.state.style.size=Math.max(0,Math.min(1,(b.y+b.height-d.y)/b.height))},!1)]},"mxgraph.basic.rect":function(b){var d=[Graph.createHandle(b,["size"],function(b){var d=Math.max(0,Math.min(b.width/2,b.height/2,parseFloat(mxUtils.getValue(this.state.style,"size",this.size))));
+return new mxPoint(b.x+d,b.y+d)},function(b,d){this.state.style.size=Math.round(100*Math.max(0,Math.min(b.height/2,b.width/2,d.x-b.x)))/100})];b=Graph.createHandle(b,["indent"],function(b){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"indent",this.dx2))));return new mxPoint(b.x+.75*b.width,b.y+d*b.height/200)},function(b,d){this.state.style.indent=Math.round(100*Math.max(0,Math.min(100,200*(d.y-b.y)/b.height)))/100});d.push(b);return d},step:Oa(L.prototype.size,!0,null,
+!0,L.prototype.fixedSize),hexagon:Oa(Z.prototype.size,!0,.5,!0,Z.prototype.fixedSize),curlyBracket:Oa(D.prototype.size,!1),display:Oa(wa.prototype.size,!1),cube:Va(1,e.prototype.size,!1),card:Va(.5,y.prototype.size,!0),loopLimit:Va(.5,ea.prototype.size,!0),trapezoid:Ya(.5,z.prototype.size,z.prototype.fixedSize),parallelogram:Ya(1,H.prototype.size,H.prototype.fixedSize)};Graph.createHandle=ga;Graph.handleFactory=Pa;var eb=mxVertexHandler.prototype.createCustomHandles;mxVertexHandler.prototype.createCustomHandles=
+function(){var b=eb.apply(this,arguments);if(this.graph.isCellRotatable(this.state.cell)){var d=this.state.style.shape;null==mxCellRenderer.defaultShapes[d]&&null==mxStencilRegistry.getStencil(d)?d=mxConstants.SHAPE_RECTANGLE:this.state.view.graph.isSwimlane(this.state.cell)&&(d=mxConstants.SHAPE_SWIMLANE);d=Pa[d];null==d&&null!=this.state.shape&&this.state.shape.isRoundable()&&(d=Pa[mxConstants.SHAPE_RECTANGLE]);null!=d&&(d=d(this.state),null!=d&&(b=null==b?d:b.concat(d)))}return b};mxEdgeHandler.prototype.createCustomHandles=
+function(){var b=this.state.style.shape;null==mxCellRenderer.defaultShapes[b]&&null==mxStencilRegistry.getStencil(b)&&(b=mxConstants.SHAPE_CONNECTOR);b=Pa[b];return null!=b?b(this.state):null}}else Graph.createHandle=function(){},Graph.handleFactory={};var Qa=new mxPoint(1,0),Ra=new mxPoint(1,0),Ha=mxUtils.toRadians(-30),Qa=mxUtils.getRotatedPoint(Qa,Math.cos(Ha),Math.sin(Ha)),Ha=mxUtils.toRadians(-150),Ra=mxUtils.getRotatedPoint(Ra,Math.cos(Ha),Math.sin(Ha));mxEdgeStyle.IsometricConnector=function(b,
+d,g,c,e){var f=b.view;c=null!=c&&0<c.length?c[0]:null;var l=b.absolutePoints,m=l[0],l=l[l.length-1];null!=c&&(c=f.transformControlPoint(b,c));null==m&&null!=d&&(m=new mxPoint(d.getCenterX(),d.getCenterY()));null==l&&null!=g&&(l=new mxPoint(g.getCenterX(),g.getCenterY()));var k=Qa.x,q=Qa.y,n=Ra.x,G=Ra.y,u="horizontal"==mxUtils.getValue(b.style,"elbow","horizontal");if(null!=l&&null!=m){b=function(b,d,g){b-=v.x;var c=d-v.y;d=(G*b-n*c)/(k*G-q*n);b=(q*b-k*c)/(q*n-k*G);u?(g&&(v=new mxPoint(v.x+k*d,v.y+
+q*d),e.push(v)),v=new mxPoint(v.x+n*b,v.y+G*b)):(g&&(v=new mxPoint(v.x+n*b,v.y+G*b),e.push(v)),v=new mxPoint(v.x+k*d,v.y+q*d));e.push(v)};var v=m;null==c&&(c=new mxPoint(m.x+(l.x-m.x)/2,m.y+(l.y-m.y)/2));b(c.x,c.y,!0);b(l.x,l.y,!1)}};mxStyleRegistry.putValue("isometricEdgeStyle",mxEdgeStyle.IsometricConnector);var fb=Graph.prototype.createEdgeHandler;Graph.prototype.createEdgeHandler=function(b,d){if(d==mxEdgeStyle.IsometricConnector){var g=new mxElbowEdgeHandler(b);g.snapToTerminals=!1;return g}return fb.apply(this,
+arguments)};f.prototype.constraints=[];p.prototype.getConstraints=function(b,d,g){b=[];var c=Math.tan(mxUtils.toRadians(30)),e=(.5-c)/2,c=Math.min(d,g/(.5+c));d=(d-c)/2;g=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+.5*c,g+c*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.25*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d+c,g+.75*c));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d+.5*c,g+(1-e)*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g+.75*c));return b};l.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200,c=Math.min(d*Math.tan(c),.5*g);b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d,g-c));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));return b};K.prototype.getConstraints=function(b,d,g){b=[];mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE);var c=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size))));parseFloat(mxUtils.getValue(this.style,
+"position",this.position));var e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"position2",this.position2))));parseFloat(mxUtils.getValue(this.style,"base",this.base));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.25,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d,.5*(g-c)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-c)));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),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(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(0,1),!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(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,
+.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];Ja.prototype.constraints=mxRectangleShape.prototype.constraints;mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;M.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;d.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,
+"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,
+1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return b};y.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),0));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));d>=2*c&&b.push(new mxConnectionConstraint(new mxPoint(.5,
+0),!1));return b};e.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,Math.min(g,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,d,.5*(g+c)));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-c)));return b};m.prototype.getConstraints=function(b,d,g){b=[];d=Math.max(0,Math.min(g,
+parseFloat(mxUtils.getValue(this.style,"size",this.size))));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d));b.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,
+1),!1,null,0,-d));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,d+.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,d+.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,g-d-.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-d-.5*(.5*g-d)));b.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*d));b.push(new mxConnectionConstraint(new mxPoint(.855,
+1),!1,null,0,.29*-d));b.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-d));return b};u.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(b.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e))):(b.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-.5*c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0)),b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,e)),b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,.5*(d-c),e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.25*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.75*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,
+0,.25*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.75*(g-e)+e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g));b.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return b};ma.prototype.constraints=mxRectangleShape.prototype.constraints;ha.prototype.constraints=
+mxRectangleShape.prototype.constraints;ya.prototype.constraints=mxEllipse.prototype.constraints;pa.prototype.constraints=mxEllipse.prototype.constraints;xa.prototype.constraints=mxEllipse.prototype.constraints;Aa.prototype.constraints=mxEllipse.prototype.constraints;X.prototype.constraints=mxRectangleShape.prototype.constraints;Ka.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.getConstraints=function(b,d,g){b=[];var c=Math.min(d,g/2),e=Math.min(d-c,Math.max(0,parseFloat(mxUtils.getValue(this.style,
+"size",this.size)))*d);b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(e+d-c),g));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,e,g));return b};la.prototype.getConstraints=function(b,d,g){d=parseFloat(mxUtils.getValue(b,"jettyWidth",la.prototype.jettyWidth))/2;b=parseFloat(mxUtils.getValue(b,"jettyHeight",la.prototype.jettyHeight));var c=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,d),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,d),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(g-.5*b,1.5*b)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(g-
+.5*b,3.5*b))];g>5*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,d));g>8*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null,d));g>15*b&&c.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,d));return c};ea.prototype.constraints=mxRectangleShape.prototype.constraints;ta.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)];G.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)];ja.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,.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)];x.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)];L.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)];oa.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)];H.prototype.constraints=mxRectangleShape.prototype.constraints;z.prototype.constraints=mxRectangleShape.prototype.constraints;F.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(b,d,g){b=[];var c=Math.max(0,
+Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,
+null,.75*d+.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-c),.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,0),
+!1,null,.5*(d-c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*d-.25*c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*e));return b};qa.prototype.getConstraints=function(b,d,g){b=[];var c=Math.max(0,Math.min(d,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),e=Math.max(0,Math.min(g,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));b.push(new mxConnectionConstraint(new mxPoint(0,0),
+!1));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(1,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,.5*e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+c),e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,e));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,c,.5*(g+e)));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,c,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*c,g));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,1),!1));return b};T.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)];da.prototype.getConstraints=function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d-e),g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,g-c));return b};na.prototype.getConstraints=function(b,d,g){b=[];var c=g*Math.max(0,Math.min(1,
+parseFloat(mxUtils.getValue(this.style,"arrowWidth",da.prototype.arrowWidth)))),e=d*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",da.prototype.arrowSize)))),c=(g-c)/2;b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,0));b.push(new mxConnectionConstraint(new mxPoint(1,.5),
+!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d-e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*d,g-c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g));return b};Ca.prototype.getConstraints=function(b,d,g){b=[];var c=Math.min(g,d),e=Math.max(0,Math.min(c,c*parseFloat(mxUtils.getValue(this.style,"size",this.size)))),c=(g-e)/2,f=c+e,l=(d-e)/2,e=l+e;b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,l,0));b.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,0));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,g));b.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,e,g));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,g-.5*c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,e,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,c));b.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,d,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(d+e),f));b.push(new mxConnectionConstraint(new mxPoint(0,
+0),!1,null,l,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,c));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,c));b.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,f));b.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,c));return b};Q.prototype.constraints=null;ua.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)];O.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)];ka.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];ra.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(b){this.editorUi=b;this.actions={};this.init()}
Actions.prototype.init=function(){function b(b){f.escape();b=f.deleteCells(f.getDeletableCells(f.getSelectionCells()),b);null!=b&&f.setSelectionCells(b)}function c(){if(!f.isSelectionEmpty()){f.getModel().beginUpdate();try{for(var b=f.getSelectionCells(),d=0;d<b.length;d++)f.cellLabelChanged(b[d],"")}finally{f.getModel().endUpdate()}}}var e=this.editorUi,k=e.editor,f=k.graph,p=function(){return Action.prototype.isEnabled.apply(this,arguments)&&f.isEnabled()};this.addAction("new...",function(){f.openLink(e.getUrl())});
this.addAction("open...",function(){window.openNew=!0;window.openKey="open";e.openFile()});this.addAction("smartFit",function(){f.popupMenuHandler.hideMenu();var b=f.view.scale,d=f.view.translate.x,c=f.view.translate.y;e.actions.get("resetView").funct();1E-5>Math.abs(b-f.view.scale)&&d==f.view.translate.x&&c==f.view.translate.y&&e.actions.get(f.pageVisible?"fitPage":"fitWindow").funct()});this.addAction("keyPressEnter",function(){f.isEnabled()&&(f.isSelectionEmpty()?e.actions.get("smartFit").funct():
f.startEditingAtCell())});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){e.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(b,d){try{var g=mxUtils.parseXml(b);k.graph.setSelectionCells(k.graph.importGraphModel(g.documentElement))}catch(m){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+m.message)}}));e.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile=
@@ -3161,26 +3164,26 @@ Editor.createRoughCanvas=function(b){var d=rough.canvas({getContext:function(){r
c.filled?b.fill():b.stroke()};return d};(function(){function b(d,c,g){this.canvas=d;this.rc=c;this.shape=g;this.canvas.setLineJoin("round");this.canvas.setLineCap("round");this.originalBegin=this.canvas.begin;this.canvas.begin=mxUtils.bind(this,b.prototype.begin);this.originalEnd=this.canvas.end;this.canvas.end=mxUtils.bind(this,b.prototype.end);this.originalRect=this.canvas.rect;this.canvas.rect=mxUtils.bind(this,b.prototype.rect);this.originalRoundrect=this.canvas.roundrect;this.canvas.roundrect=
mxUtils.bind(this,b.prototype.roundrect);this.originalEllipse=this.canvas.ellipse;this.canvas.ellipse=mxUtils.bind(this,b.prototype.ellipse);this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,b.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,b.prototype.moveTo);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,b.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this,
b.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,b.prototype.arcTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,b.prototype.close);this.originalFill=this.canvas.fill;this.canvas.fill=mxUtils.bind(this,b.prototype.fill);this.originalStroke=this.canvas.stroke;this.canvas.stroke=mxUtils.bind(this,b.prototype.stroke);this.originalFillAndStroke=this.canvas.fillAndStroke;this.canvas.fillAndStroke=mxUtils.bind(this,b.prototype.fillAndStroke);
-this.path=[];this.passThrough=!1}b.prototype.moveOp="M";b.prototype.lineOp="L";b.prototype.quadOp="Q";b.prototype.curveOp="C";b.prototype.closeOp="Z";b.prototype.getStyle=function(b,d){var c=1;if(null!=this.shape.state){var g=this.shape.state.cell.id;if(null!=g)for(var e=0;e<g.length;e++)c=(c<<5)-c+g.charCodeAt(e)<<0}c={strokeWidth:this.canvas.state.strokeWidth,seed:c,preserveVertices:!0};g=this.rc.getDefaultOptions();b?c.stroke="none"===this.canvas.state.strokeColor?"transparent":this.canvas.state.strokeColor:
-delete c.stroke;e=null;(c.filled=d)?(c.fill="none"===this.canvas.state.fillColor?"":this.canvas.state.fillColor,e="none"===this.canvas.state.gradientColor?null:this.canvas.state.gradientColor):c.fill="";c.bowing=mxUtils.getValue(this.shape.style,"bowing",g.bowing);c.hachureAngle=mxUtils.getValue(this.shape.style,"hachureAngle",g.hachureAngle);c.curveFitting=mxUtils.getValue(this.shape.style,"curveFitting",g.curveFitting);c.roughness=mxUtils.getValue(this.shape.style,"jiggle",g.roughness);c.simplification=
+this.path=[];this.passThrough=!1}b.prototype.moveOp="M";b.prototype.lineOp="L";b.prototype.quadOp="Q";b.prototype.curveOp="C";b.prototype.closeOp="Z";b.prototype.getStyle=function(b,d){var c=1;if(null!=this.shape.state){var g=this.shape.state.cell.id;if(null!=g)for(var e=0;e<g.length;e++)c=(c<<5)-c+g.charCodeAt(e)<<0}c={strokeWidth:this.canvas.state.strokeWidth,seed:c,preserveVertices:!0};g=this.rc.getDefaultOptions();c.stroke=b?"none"===this.canvas.state.strokeColor?"transparent":this.canvas.state.strokeColor:
+"none";e=null;(c.filled=d)?(c.fill="none"===this.canvas.state.fillColor?"":this.canvas.state.fillColor,e="none"===this.canvas.state.gradientColor?null:this.canvas.state.gradientColor):c.fill="";c.bowing=mxUtils.getValue(this.shape.style,"bowing",g.bowing);c.hachureAngle=mxUtils.getValue(this.shape.style,"hachureAngle",g.hachureAngle);c.curveFitting=mxUtils.getValue(this.shape.style,"curveFitting",g.curveFitting);c.roughness=mxUtils.getValue(this.shape.style,"jiggle",g.roughness);c.simplification=
mxUtils.getValue(this.shape.style,"simplification",g.simplification);c.disableMultiStroke=mxUtils.getValue(this.shape.style,"disableMultiStroke",g.disableMultiStroke);c.disableMultiStrokeFill=mxUtils.getValue(this.shape.style,"disableMultiStrokeFill",g.disableMultiStrokeFill);var f=mxUtils.getValue(this.shape.style,"hachureGap",-1);c.hachureGap="auto"==f?-1:f;c.dashGap=mxUtils.getValue(this.shape.style,"dashGap",f);c.dashOffset=mxUtils.getValue(this.shape.style,"dashOffset",f);c.zigzagOffset=mxUtils.getValue(this.shape.style,
"zigzagOffset",f);f=mxUtils.getValue(this.shape.style,"fillWeight",-1);c.fillWeight="auto"==f?-1:f;f=mxUtils.getValue(this.shape.style,"fillStyle","auto");"auto"==f&&(f=mxUtils.hex2rgb(null!=this.shape.state?this.shape.state.view.graph.shapeBackgroundColor:Editor.isDarkMode()?Editor.darkColor:"#ffffff"),f=null!=c.fill&&(null!=e||null!=f&&c.fill==f)?"solid":g.fillStyle);c.fillStyle=f;return c};b.prototype.begin=function(){this.passThrough?this.originalBegin.apply(this.canvas,arguments):this.path=[]};
b.prototype.end=function(){this.passThrough&&this.originalEnd.apply(this.canvas,arguments)};b.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var b=2;b<arguments.length;b+=2)this.lastX=arguments[b-1],this.lastY=arguments[b],this.path.push(this.canvas.format(this.lastX)),this.path.push(this.canvas.format(this.lastY))};b.prototype.lineTo=function(b,d){this.passThrough?this.originalLineTo.apply(this.canvas,arguments):(this.addOp(this.lineOp,b,d),this.lastX=
b,this.lastY=d)};b.prototype.moveTo=function(b,d){this.passThrough?this.originalMoveTo.apply(this.canvas,arguments):(this.addOp(this.moveOp,b,d),this.lastX=b,this.lastY=d,this.firstX=b,this.firstY=d)};b.prototype.close=function(){this.passThrough?this.originalClose.apply(this.canvas,arguments):this.addOp(this.closeOp)};b.prototype.quadTo=function(b,d,c,g){this.passThrough?this.originalQuadTo.apply(this.canvas,arguments):(this.addOp(this.quadOp,b,d,c,g),this.lastX=c,this.lastY=g)};b.prototype.curveTo=
-function(b,d,c,g,e,f){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,d,c,g,e,f),this.lastX=e,this.lastY=f)};b.prototype.arcTo=function(b,d,c,g,e,f,l){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var m=mxUtils.arcToCurves(this.lastX,this.lastY,b,d,c,g,e,f,l);if(null!=m)for(var k=0;k<m.length;k+=6)this.curveTo(m[k],m[k+1],m[k+2],m[k+3],m[k+4],m[k+5]);this.lastX=f;this.lastY=l}};b.prototype.rect=function(b,d,c,g){this.passThrough?
+function(b,d,c,g,e,f){this.passThrough?this.originalCurveTo.apply(this.canvas,arguments):(this.addOp(this.curveOp,b,d,c,g,e,f),this.lastX=e,this.lastY=f)};b.prototype.arcTo=function(b,d,c,g,e,f,l){if(this.passThrough)this.originalArcTo.apply(this.canvas,arguments);else{var k=mxUtils.arcToCurves(this.lastX,this.lastY,b,d,c,g,e,f,l);if(null!=k)for(var m=0;m<k.length;m+=6)this.curveTo(k[m],k[m+1],k[m+2],k[m+3],k[m+4],k[m+5]);this.lastX=f;this.lastY=l}};b.prototype.rect=function(b,d,c,g){this.passThrough?
this.originalRect.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.rectangle(b,d,c,g,this.getStyle(!0,!0)))};b.prototype.ellipse=function(b,d,c,g){this.passThrough?this.originalEllipse.apply(this.canvas,arguments):(this.path=[],this.nextShape=this.rc.generator.ellipse(b+c/2,d+g/2,c,g,this.getStyle(!0,!0)))};b.prototype.roundrect=function(b,d,c,g,e,f){this.passThrough?this.originalRoundrect.apply(this.canvas,arguments):(this.begin(),this.moveTo(b+e,d),this.lineTo(b+c-e,d),
this.quadTo(b+c,d,b+c,d+f),this.lineTo(b+c,d+g-f),this.quadTo(b+c,d+g,b+c-e,d+g),this.lineTo(b+e,d+g),this.quadTo(b,d+g,b,d+g-f),this.lineTo(b,d+f),this.quadTo(b,d,b+e,d))};b.prototype.drawPath=function(b){if(0<this.path.length){this.passThrough=!0;try{this.rc.path(this.path.join(" "),b)}catch(V){}this.passThrough=!1}else if(null!=this.nextShape){for(var d in b)this.nextShape.options[d]=b[d];null==b.stroke&&delete this.nextShape.options.stroke;b.filled||delete this.nextShape.options.fill;this.passThrough=
!0;this.rc.draw(this.nextShape);this.passThrough=!1}};b.prototype.stroke=function(){this.passThrough?this.originalStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!1))};b.prototype.fill=function(){this.passThrough?this.originalFill.apply(this.canvas,arguments):this.drawPath(this.getStyle(!1,!0))};b.prototype.fillAndStroke=function(){this.passThrough?this.originalFillAndStroke.apply(this.canvas,arguments):this.drawPath(this.getStyle(!0,!0))};b.prototype.destroy=function(){this.canvas.lineTo=
this.originalLineTo;this.canvas.moveTo=this.originalMoveTo;this.canvas.close=this.originalClose;this.canvas.quadTo=this.originalQuadTo;this.canvas.curveTo=this.originalCurveTo;this.canvas.arcTo=this.originalArcTo;this.canvas.close=this.originalClose;this.canvas.fill=this.originalFill;this.canvas.stroke=this.originalStroke;this.canvas.fillAndStroke=this.originalFillAndStroke;this.canvas.begin=this.originalBegin;this.canvas.end=this.originalEnd;this.canvas.rect=this.originalRect;this.canvas.ellipse=
this.originalEllipse;this.canvas.roundrect=this.originalRoundrect};mxShape.prototype.createRoughCanvas=function(d){return new b(d,Editor.createRoughCanvas(d),this)};var d=mxShape.prototype.createHandJiggle;mxShape.prototype.createHandJiggle=function(b){return this.outline||null==this.style||"0"==mxUtils.getValue(this.style,"sketch","0")?d.apply(this,arguments):"comic"==mxUtils.getValue(this.style,"sketchStyle","rough")?this.createComicCanvas(b):this.createRoughCanvas(b)};var c=mxShape.prototype.paint;
-mxShape.prototype.paint=function(d){var g=d.addTolerance,e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(null!=d.handJiggle&&d.handJiggle.constructor==b&&!this.outline){d.save();var f=this.fill,l=this.stroke;this.stroke=this.fill=null;var m=this.configurePointerEvents,k=d.setStrokeColor;d.setStrokeColor=function(){};var n=d.setFillColor;d.setFillColor=function(){};e||null==f||(this.configurePointerEvents=function(){});d.handJiggle.passThrough=!0;
-c.apply(this,arguments);d.handJiggle.passThrough=!1;d.setFillColor=n;d.setStrokeColor=k;this.configurePointerEvents=m;this.stroke=l;this.fill=f;d.restore();e&&null!=f&&(d.addTolerance=function(){})}c.apply(this,arguments);d.addTolerance=g};var g=mxShape.prototype.paintGlassEffect;mxShape.prototype.paintGlassEffect=function(d,c,e,f,l,m){null!=d.handJiggle&&d.handJiggle.constructor==b?(d.handJiggle.passThrough=!0,g.apply(this,arguments),d.handJiggle.passThrough=!1):g.apply(this,arguments)}})();Editor.fastCompress=
+mxShape.prototype.paint=function(d){var g=d.addTolerance,e=!0;null!=this.style&&(e="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));if(null!=d.handJiggle&&d.handJiggle.constructor==b&&!this.outline){d.save();var f=this.fill,l=this.stroke;this.stroke=this.fill=null;var k=this.configurePointerEvents,m=d.setStrokeColor;d.setStrokeColor=function(){};var n=d.setFillColor;d.setFillColor=function(){};e||null==f||(this.configurePointerEvents=function(){});d.handJiggle.passThrough=!0;
+c.apply(this,arguments);d.handJiggle.passThrough=!1;d.setFillColor=n;d.setStrokeColor=m;this.configurePointerEvents=k;this.stroke=l;this.fill=f;d.restore();e&&null!=f&&(d.addTolerance=function(){})}c.apply(this,arguments);d.addTolerance=g};var g=mxShape.prototype.paintGlassEffect;mxShape.prototype.paintGlassEffect=function(d,c,e,f,l,k){null!=d.handJiggle&&d.handJiggle.constructor==b?(d.handJiggle.passThrough=!0,g.apply(this,arguments),d.handJiggle.passThrough=!1):g.apply(this,arguments)}})();Editor.fastCompress=
function(b){return null==b||0==b.length||"undefined"===typeof pako?b:Graph.arrayBufferToString(pako.deflateRaw(b))};Editor.fastDecompress=function(b){return null==b||0==b.length||"undefined"===typeof pako?b:pako.inflateRaw(Graph.stringToArrayBuffer(atob(b)),{to:"string"})};Editor.extractGraphModel=function(b,d,c){if(null!=b&&"undefined"!==typeof pako){var g=b.ownerDocument.getElementsByTagName("div"),e=[];if(null!=g&&0<g.length)for(var f=0;f<g.length;f++)if("mxgraph"==g[f].getAttribute("class")){e.push(g[f]);
break}0<e.length&&(g=e[0].getAttribute("data-mxgraph"),null!=g?(e=JSON.parse(g),null!=e&&null!=e.xml&&(b=mxUtils.parseXml(e.xml),b=b.documentElement)):(e=e[0].getElementsByTagName("div"),0<e.length&&(g=mxUtils.getTextContent(e[0]),g=Graph.decompress(g,null,c),0<g.length&&(b=mxUtils.parseXml(g),b=b.documentElement))))}if(null!=b&&"svg"==b.nodeName)if(g=b.getAttribute("content"),null!=g&&"<"!=g.charAt(0)&&"%"!=g.charAt(0)&&(g=unescape(window.atob?atob(g):Base64.decode(cont,g))),null!=g&&"%"==g.charAt(0)&&
(g=decodeURIComponent(g)),null!=g&&0<g.length)b=mxUtils.parseXml(g).documentElement;else throw{message:mxResources.get("notADiagramFile")};null==b||d||(e=null,"diagram"==b.nodeName?e=b:"mxfile"==b.nodeName&&(g=b.getElementsByTagName("diagram"),0<g.length&&(e=g[Math.max(0,Math.min(g.length-1,urlParams.page||0))])),null!=e&&(b=Editor.parseDiagramNode(e,c)));null==b||"mxGraphModel"==b.nodeName||d&&"mxfile"==b.nodeName||(b=null);return b};Editor.parseDiagramNode=function(b,d){var c=mxUtils.trim(mxUtils.getTextContent(b)),
g=null;0<c.length?(c=Graph.decompress(c,null,d),null!=c&&0<c.length&&(g=mxUtils.parseXml(c).documentElement)):(c=mxUtils.getChildNodes(b),0<c.length&&(g=mxUtils.createXmlDocument(),g.appendChild(g.importNode(c[0],!0)),g=g.documentElement));return g};Editor.getDiagramNodeXml=function(b){var d=mxUtils.getTextContent(b),c=null;0<d.length?c=Graph.decompress(d):null!=b.firstChild&&(c=mxUtils.getXml(b.firstChild));return c};Editor.extractGraphModelFromPdf=function(b){b=b.substring(b.indexOf(",")+1);b=window.atob&&
-!mxClient.IS_SF?atob(b):Base64.decode(b,!0);if("%PDF-1.7"==b.substring(0,8)){var d=b.indexOf("EmbeddedFile");if(-1<d){var c=b.indexOf("stream",d)+9;if(0<b.substring(d,c).indexOf("application#2Fvnd.jgraph.mxfile"))return d=b.indexOf("endstream",c-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(c,d)),{to:"string"})}return null}for(var c=null,d="",g=0,e=0,f=[],l=null;e<b.length;){var m=b.charCodeAt(e),e=e+1;10!=m&&(d+=String.fromCharCode(m));m=="/Subject (%3Cmxfile".charCodeAt(g)?g++:g=0;if(19==
-g){var k=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(k>e){c=b.substring(e,k);break}}10==m&&("endobj"==d?l=null:"obj"==d.substring(d.length-3,d.length)||"xref"==d||"trailer"==d?(l=[],f[d.split(" ")[0]]=l):null!=l&&l.push(d),d="")}null==c&&(c=Editor.extractGraphModelFromXref(f));null!=c&&(c=decodeURIComponent(c.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return c};Editor.extractGraphModelFromXref=function(b){var d=b.trailer,c=null;null!=d&&(d=/.* \/Info (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<
+!mxClient.IS_SF?atob(b):Base64.decode(b,!0);if("%PDF-1.7"==b.substring(0,8)){var d=b.indexOf("EmbeddedFile");if(-1<d){var c=b.indexOf("stream",d)+9;if(0<b.substring(d,c).indexOf("application#2Fvnd.jgraph.mxfile"))return d=b.indexOf("endstream",c-1),pako.inflateRaw(Graph.stringToArrayBuffer(b.substring(c,d)),{to:"string"})}return null}for(var c=null,d="",g=0,e=0,f=[],l=null;e<b.length;){var k=b.charCodeAt(e),e=e+1;10!=k&&(d+=String.fromCharCode(k));k=="/Subject (%3Cmxfile".charCodeAt(g)?g++:g=0;if(19==
+g){var m=b.indexOf("%3C%2Fmxfile%3E)",e)+15,e=e-9;if(m>e){c=b.substring(e,m);break}}10==k&&("endobj"==d?l=null:"obj"==d.substring(d.length-3,d.length)||"xref"==d||"trailer"==d?(l=[],f[d.split(" ")[0]]=l):null!=l&&l.push(d),d="")}null==c&&(c=Editor.extractGraphModelFromXref(f));null!=c&&(c=decodeURIComponent(c.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return c};Editor.extractGraphModelFromXref=function(b){var d=b.trailer,c=null;null!=d&&(d=/.* \/Info (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<
d.length&&(d=b[d[1]],null!=d&&(d=/.* \/Subject (\d+) (\d+) R/g.exec(d.join("\n")),null!=d&&0<d.length&&(b=b[d[1]],null!=b&&(b=b.join("\n"),c=b.substring(1,b.length-1))))));return c};Editor.extractParserError=function(b,d){var c=null,g=null!=b?b.getElementsByTagName("parsererror"):null;null!=g&&0<g.length&&(c=d||mxResources.get("invalidChars"),g=g[0].getElementsByTagName("div"),0<g.length&&(c=mxUtils.getTextContent(g[0])));return null!=c?mxUtils.trim(c):c};Editor.addRetryToError=function(b,d){if(null!=
b){var c=null!=b.error?b.error:b;null==c.retry&&(c.retry=d)}};Editor.configure=function(b,d){if(null!=b){Editor.config=b;Editor.configVersion=b.version;Menus.prototype.defaultFonts=b.defaultFonts||Menus.prototype.defaultFonts;ColorDialog.prototype.presetColors=b.presetColors||ColorDialog.prototype.presetColors;ColorDialog.prototype.defaultColors=b.defaultColors||ColorDialog.prototype.defaultColors;ColorDialog.prototype.colorNames=b.colorNames||ColorDialog.prototype.colorNames;StyleFormatPanel.prototype.defaultColorSchemes=
b.defaultColorSchemes||StyleFormatPanel.prototype.defaultColorSchemes;Graph.prototype.defaultEdgeLength=b.defaultEdgeLength||Graph.prototype.defaultEdgeLength;DrawioFile.prototype.autosaveDelay=b.autosaveDelay||DrawioFile.prototype.autosaveDelay;null!=b.templateFile&&(EditorUi.templateFile=b.templateFile);null!=b.styles&&(Array.isArray(b.styles)?Editor.styles=b.styles:EditorUi.debug("Configuration Error: Array expected for styles"));null!=b.globalVars&&(Editor.globalVars=b.globalVars);null!=b.compressXml&&
@@ -3209,26 +3212,26 @@ Editor.prototype.csvToArray=function(b){if(!/^\s*(?:'[^'\\]*(?:\\[\S\s][^'\\]*)*
'"')):void 0!==e&&d.push(e);return""});/,\s*$/.test(b)&&d.push("");return d};Editor.prototype.isCorsEnabledForUrl=function(b){if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||b.substring(0,window.location.origin.length)==window.location.origin)return!0;null!=urlParams.cors&&null==this.corsRegExp&&(this.corsRegExp=new RegExp(decodeURIComponent(urlParams.cors)));return null!=this.corsRegExp&&this.corsRegExp.test(b)||"https://raw.githubusercontent.com/"===b.substring(0,34)};Editor.prototype.createImageUrlConverter=
function(){var b=new mxUrlConverter;b.updateBaseUrl();var d=b.convert,c=this;b.convert=function(g){if(null!=g){var e="http://"==g.substring(0,7)||"https://"==g.substring(0,8);e&&!navigator.onLine?g=Editor.svgBrokenImage.src:!e||g.substring(0,b.baseUrl.length)==b.baseUrl||c.crossOriginImages&&c.isCorsEnabledForUrl(g)?"chrome-extension://"==g.substring(0,19)||mxClient.IS_CHROMEAPP||(g=d.apply(this,arguments)):g=PROXY_URL+"?url="+encodeURIComponent(g)}return g};return b};Editor.createSvgDataUri=function(b){return"data:image/svg+xml;base64,"+
btoa(unescape(encodeURIComponent(b)))};Editor.prototype.convertImageToDataUri=function(b,d){try{var c=!0,g=window.setTimeout(mxUtils.bind(this,function(){c=!1;d(Editor.svgBrokenImage.src)}),this.timeout);if(/(\.svg)$/i.test(b))mxUtils.get(b,mxUtils.bind(this,function(b){window.clearTimeout(g);c&&d(Editor.createSvgDataUri(b.getText()))}),function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)});else{var e=new Image;this.crossOriginImages&&(e.crossOrigin="anonymous");e.onload=function(){window.clearTimeout(g);
-if(c)try{var b=document.createElement("canvas"),f=b.getContext("2d");b.height=e.height;b.width=e.width;f.drawImage(e,0,0);d(b.toDataURL())}catch(oa){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(Q){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,l){for(var m=b.getElementsByTagName(c),k=0;k<m.length;k++)mxUtils.bind(this,
-function(c){try{if(null!=c){var m=g.convert(c.getAttribute(l));if(null!=m&&"data:"!=m.substring(0,5)){var k=f[m];null==k?(e++,this.convertImageToDataUri(m,function(g){null!=g&&(f[m]=g,c.setAttribute(l,g));e--;0==e&&d(b)})):c.setAttribute(l,k)}else null!=m&&c.setAttribute(l,m)}}catch(aa){}})(m[k])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,g=b.length,e,f,l;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
+if(c)try{var b=document.createElement("canvas"),f=b.getContext("2d");b.height=e.height;b.width=e.width;f.drawImage(e,0,0);d(b.toDataURL())}catch(oa){d(Editor.svgBrokenImage.src)}};e.onerror=function(){window.clearTimeout(g);c&&d(Editor.svgBrokenImage.src)};e.src=b}}catch(Q){d(Editor.svgBrokenImage.src)}};Editor.prototype.convertImages=function(b,d,c,g){null==g&&(g=this.createImageUrlConverter());var e=0,f=c||{};c=mxUtils.bind(this,function(c,l){for(var k=b.getElementsByTagName(c),m=0;m<k.length;m++)mxUtils.bind(this,
+function(c){try{if(null!=c){var k=g.convert(c.getAttribute(l));if(null!=k&&"data:"!=k.substring(0,5)){var m=f[k];null==m?(e++,this.convertImageToDataUri(k,function(g){null!=g&&(f[k]=g,c.setAttribute(l,g));e--;0==e&&d(b)})):c.setAttribute(l,m)}else null!=k&&c.setAttribute(l,k)}}catch(aa){}})(k[m])});c("image","xlink:href");c("img","src");0==e&&d(b)};Editor.base64Encode=function(b){for(var d="",c=0,g=b.length,e,f,l;c<g;){e=b.charCodeAt(c++)&255;if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4);d+="==";break}f=b.charCodeAt(c++);if(c==g){d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2);d+="=";break}l=b.charCodeAt(c++);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e>>
-2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(l&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return d};Editor.prototype.loadUrl=function(b,d,c,g,e,f,l,m){try{var k=!l&&(g||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var n=mxUtils.bind(this,
-function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&299>=b.getStatus()){if(null!=d){var g=b.getText();if(k){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var g=Array(b.length),e=0;e<b.length;e++)g[e]=String.fromCharCode(b[e]);g=g.join("")}f=null!=f?f:"data:image/png;base64,";g=f+Editor.base64Encode(g)}d(g)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},
-b):c({message:mxResources.get("error")+" "+b.getStatus()},b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},k,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:n})},m)});n()}catch(ra){null!=c&&c(ra)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var g=null!=b?b.lastIndexOf("/"):-1;0<=g&&(b=b.substring(0,g+1));var g=document.getElementsByTagName("base"),
+2);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((e&3)<<4|(f&240)>>4);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((f&15)<<2|(l&192)>>6);d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(l&63)}return d};Editor.prototype.loadUrl=function(b,d,c,g,e,f,l,k){try{var m=!l&&(g||/(\.png)($|\?)/i.test(b)||/(\.jpe?g)($|\?)/i.test(b)||/(\.gif)($|\?)/i.test(b)||/(\.pdf)($|\?)/i.test(b));e=null!=e?e:!0;var n=mxUtils.bind(this,
+function(){mxUtils.get(b,mxUtils.bind(this,function(b){if(200<=b.getStatus()&&299>=b.getStatus()){if(null!=d){var g=b.getText();if(m){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){b=mxUtilsBinaryToArray(b.request.responseBody).toArray();for(var g=Array(b.length),e=0;e<b.length;e++)g[e]=String.fromCharCode(b[e]);g=g.join("")}f=null!=f?f:"data:image/png;base64,";g=f+Editor.base64Encode(g)}d(g)}}else null!=c&&(0==b.getStatus()?c({message:mxResources.get("accessDenied")},
+b):c({message:mxResources.get("error")+" "+b.getStatus()},b))}),function(b){null!=c&&c({message:mxResources.get("error")+" "+b.getStatus()})},m,this.timeout,function(){e&&null!=c&&c({code:App.ERROR_TIMEOUT,retry:n})},k)});n()}catch(ra){null!=c&&c(ra)}};Editor.prototype.absoluteCssFonts=function(b){var d=null;if(null!=b){var c=b.split("url(");if(0<c.length){d=[c[0]];b=window.location.pathname;var g=null!=b?b.lastIndexOf("/"):-1;0<=g&&(b=b.substring(0,g+1));var g=document.getElementsByTagName("base"),
e=null;null!=g&&0<g.length&&(e=g[0].getAttribute("href"));for(var f=1;f<c.length;f++)if(g=c[f].indexOf(")"),0<g){var l=Editor.trimCssUrl(c[f].substring(0,g));this.graph.isRelativeUrl(l)&&(l=null!=e?e+l:window.location.protocol+"//"+window.location.hostname+("/"==l.charAt(0)?"":b)+l);d.push('url("'+l+'"'+c[f].substring(g))}else d.push(c[f])}else d=[b]}return null!=d?d.join(""):null};Editor.prototype.embedCssFonts=function(b,d){var c=b.split("url("),g=0;null==this.cachedFonts&&(this.cachedFonts={});
-var e=mxUtils.bind(this,function(){if(0==g){for(var b=[c[0]],e=1;e<c.length;e++){var f=c[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(c[e].substring(0,f))]);b.push('"'+c[e].substring(f))}d(b.join(""))}});if(0<c.length){for(var f=1;f<c.length;f++){var l=c[f].indexOf(")"),m=null,k=c[f].indexOf("format(",l);0<k&&(m=Editor.trimCssUrl(c[f].substring(k+7,c[f].indexOf(")",k))));mxUtils.bind(this,function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;g++;var d="application/x-font-ttf";
-if("svg"==m||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==m||"embedded-opentype"==m||/(\.otf)($|\?)/i.test(b))d="application/x-font-opentype";else if("woff"==m||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==m||/(\.woff2)($|\?)/i.test(b))d="application/font-woff2";else if("eot"==m||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";else if("sfnt"==m||/(\.sfnt)($|\?)/i.test(b))d="application/font-sfnt";var c=b;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&
-(c=PROXY_URL+"?url="+encodeURIComponent(b));this.loadUrl(c,mxUtils.bind(this,function(d){this.cachedFonts[b]=d;g--;e()}),mxUtils.bind(this,function(b){g--;e()}),!0,null,"data:"+d+";charset=utf-8;base64,")}})(Editor.trimCssUrl(c[f].substring(0,l)),m)}e()}else d(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;null!=b&&b()})):null!=b&&b()};Editor.prototype.embedExtFonts=function(b){var d=
+var e=mxUtils.bind(this,function(){if(0==g){for(var b=[c[0]],e=1;e<c.length;e++){var f=c[e].indexOf(")");b.push('url("');b.push(this.cachedFonts[Editor.trimCssUrl(c[e].substring(0,f))]);b.push('"'+c[e].substring(f))}d(b.join(""))}});if(0<c.length){for(var f=1;f<c.length;f++){var l=c[f].indexOf(")"),k=null,m=c[f].indexOf("format(",l);0<m&&(k=Editor.trimCssUrl(c[f].substring(m+7,c[f].indexOf(")",m))));mxUtils.bind(this,function(b){if(null==this.cachedFonts[b]){this.cachedFonts[b]=b;g++;var d="application/x-font-ttf";
+if("svg"==k||/(\.svg)($|\?)/i.test(b))d="image/svg+xml";else if("otf"==k||"embedded-opentype"==k||/(\.otf)($|\?)/i.test(b))d="application/x-font-opentype";else if("woff"==k||/(\.woff)($|\?)/i.test(b))d="application/font-woff";else if("woff2"==k||/(\.woff2)($|\?)/i.test(b))d="application/font-woff2";else if("eot"==k||/(\.eot)($|\?)/i.test(b))d="application/vnd.ms-fontobject";else if("sfnt"==k||/(\.sfnt)($|\?)/i.test(b))d="application/font-sfnt";var c=b;/^https?:\/\//.test(c)&&!this.isCorsEnabledForUrl(c)&&
+(c=PROXY_URL+"?url="+encodeURIComponent(b));this.loadUrl(c,mxUtils.bind(this,function(d){this.cachedFonts[b]=d;g--;e()}),mxUtils.bind(this,function(b){g--;e()}),!0,null,"data:"+d+";charset=utf-8;base64,")}})(Editor.trimCssUrl(c[f].substring(0,l)),k)}e()}else d(b)};Editor.prototype.loadFonts=function(b){null!=this.fontCss&&null==this.resolvedFontCss?this.embedCssFonts(this.fontCss,mxUtils.bind(this,function(d){this.resolvedFontCss=d;null!=b&&b()})):null!=b&&b()};Editor.prototype.embedExtFonts=function(b){var d=
this.graph.getCustomFonts();if(0<d.length){var c="",g=0;null==this.cachedGoogleFonts&&(this.cachedGoogleFonts={});for(var e=mxUtils.bind(this,function(){0==g&&this.embedCssFonts(c,b)}),f=0;f<d.length;f++)mxUtils.bind(this,function(b,d){Graph.isCssFontUrl(d)?null==this.cachedGoogleFonts[d]?(g++,this.loadUrl(d,mxUtils.bind(this,function(b){this.cachedGoogleFonts[d]=b;c+=b;g--;e()}),mxUtils.bind(this,function(b){g--;c+="@import url("+d+");";e()}))):c+=this.cachedGoogleFonts[d]:c+='@font-face {font-family: "'+
b+'";src: url("'+d+'")}'})(d[f].name,d[f].url);e()}else b()};Editor.prototype.addMathCss=function(b){b=b.getElementsByTagName("defs");if(null!=b&&0<b.length)for(var d=document.getElementsByTagName("style"),c=0;c<d.length;c++)0<mxUtils.getTextContent(d[c]).indexOf("MathJax")&&b[0].appendChild(d[c].cloneNode(!0))};Editor.prototype.addFontCss=function(b,d){d=null!=d?d:this.absoluteCssFonts(this.fontCss);if(null!=d){var c=b.getElementsByTagName("defs"),g=b.ownerDocument;0==c.length?(c=null!=g.createElementNS?
g.createElementNS(mxConstants.NS_SVG,"defs"):g.createElement("defs"),null!=b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)):c=c[0];g=null!=g.createElementNS?g.createElementNS(mxConstants.NS_SVG,"style"):g.createElement("style");g.setAttribute("type","text/css");mxUtils.setTextContent(g,d);c.appendChild(g)}};Editor.prototype.isExportToCanvas=function(){return mxClient.IS_CHROMEAPP||this.useCanvasForExport};Editor.prototype.getMaxCanvasScale=function(b,d,c){var g=mxClient.IS_FF?8192:16384;
-return Math.min(c,Math.min(g/b,g/d))};Editor.prototype.exportToCanvas=function(b,d,c,g,e,f,l,m,k,n,q,u,v,p,x,t,z,y){try{f=null!=f?f:!0;l=null!=l?l:!0;u=null!=u?u:this.graph;v=null!=v?v:0;var G=k?null:u.background;G==mxConstants.NONE&&(G=null);null==G&&(G=g);null==G&&0==k&&(G=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(u.getSvg(null,null,v,p,null,l,null,null,null,n,null,t,z,y),mxUtils.bind(this,function(c){try{var g=new Image;g.onload=mxUtils.bind(this,function(){try{var l=
-function(){mxClient.IS_SF?window.setTimeout(function(){p.drawImage(g,0,0);b(k,c)},0):(p.drawImage(g,0,0),b(k,c))},k=document.createElement("canvas"),n=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));m=null!=m?m:1;null!=d&&(m=f?Math.min(1,Math.min(3*d/(4*q),d/n)):d/n);m=this.getMaxCanvasScale(n,q,m);n=Math.ceil(m*n);q=Math.ceil(m*q);k.setAttribute("width",n);k.setAttribute("height",q);var p=k.getContext("2d");null!=G&&(p.beginPath(),p.rect(0,0,n,q),p.fillStyle=G,p.fill());1!=
-m&&p.scale(m,m);if(x){var t=u.view,z=t.scale;t.scale=1;var y=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=z;var y="data:image/svg+xml;base64,"+y,B=u.gridSize*t.gridSteps*m,C=u.getGraphBounds(),I=t.translate.x*z,L=t.translate.y*z,D=I+(C.x-I)/z-v,M=L+(C.y-L)/z-v,S=new Image;S.onload=function(){try{for(var b=-Math.round(B-mxUtils.mod((I-D)*m,B)),d=-Math.round(B-mxUtils.mod((L-M)*m,B));b<n;b+=B)for(var c=d;c<q;c+=B)p.drawImage(S,b/m,c/m);l()}catch(wa){null!=e&&e(wa)}};S.onerror=
+return Math.min(c,Math.min(g/b,g/d))};Editor.prototype.exportToCanvas=function(b,d,c,g,e,f,l,k,m,n,q,u,v,p,x,t,z,y){try{f=null!=f?f:!0;l=null!=l?l:!0;u=null!=u?u:this.graph;v=null!=v?v:0;var G=m?null:u.background;G==mxConstants.NONE&&(G=null);null==G&&(G=g);null==G&&0==m&&(G=t?this.graph.defaultPageBackgroundColor:"#ffffff");this.convertImages(u.getSvg(null,null,v,p,null,l,null,null,null,n,null,t,z,y),mxUtils.bind(this,function(c){try{var g=new Image;g.onload=mxUtils.bind(this,function(){try{var l=
+function(){mxClient.IS_SF?window.setTimeout(function(){p.drawImage(g,0,0);b(m,c)},0):(p.drawImage(g,0,0),b(m,c))},m=document.createElement("canvas"),n=parseInt(c.getAttribute("width")),q=parseInt(c.getAttribute("height"));k=null!=k?k:1;null!=d&&(k=f?Math.min(1,Math.min(3*d/(4*q),d/n)):d/n);k=this.getMaxCanvasScale(n,q,k);n=Math.ceil(k*n);q=Math.ceil(k*q);m.setAttribute("width",n);m.setAttribute("height",q);var p=m.getContext("2d");null!=G&&(p.beginPath(),p.rect(0,0,n,q),p.fillStyle=G,p.fill());1!=
+k&&p.scale(k,k);if(x){var t=u.view,z=t.scale;t.scale=1;var y=btoa(unescape(encodeURIComponent(t.createSvgGrid(t.gridColor))));t.scale=z;var y="data:image/svg+xml;base64,"+y,B=u.gridSize*t.gridSteps*k,C=u.getGraphBounds(),I=t.translate.x*z,M=t.translate.y*z,L=I+(C.x-I)/z-v,D=M+(C.y-M)/z-v,S=new Image;S.onload=function(){try{for(var b=-Math.round(B-mxUtils.mod((I-L)*k,B)),d=-Math.round(B-mxUtils.mod((M-D)*k,B));b<n;b+=B)for(var c=d;c<q;c+=B)p.drawImage(S,b/k,c/k);l()}catch(wa){null!=e&&e(wa)}};S.onerror=
function(b){null!=e&&e(b)};S.src=y}else l()}catch(Aa){null!=e&&e(Aa)}});g.onerror=function(b){null!=e&&e(b)};n&&this.graph.addSvgShadow(c);this.graph.mathEnabled&&this.addMathCss(c);var l=mxUtils.bind(this,function(){try{null!=this.resolvedFontCss&&this.addFontCss(c,this.resolvedFontCss),g.src=Editor.createSvgDataUri(mxUtils.getXml(c))}catch(ia){null!=e&&e(ia)}});this.embedExtFonts(mxUtils.bind(this,function(b){try{null!=b&&this.addFontCss(c,b),this.loadFonts(l)}catch(da){null!=e&&e(da)}}))}catch(ia){null!=
-e&&e(ia)}}),c,q)}catch(ma){null!=e&&e(ma)}};Editor.crcTable=[];for(var f=0;256>f;f++)for(var p=f,t=0;8>t;t++)p=1==(p&1)?3988292384^p>>>1:p>>>1,Editor.crcTable[f]=p;Editor.updateCRC=function(b,d,c,g){for(var e=0;e<g;e++)b=Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,g,e){function f(b,d){var c=k;k+=d;return b.substring(c,
-k)}function l(b){b=f(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function m(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+1);b=window.atob?atob(b):Base64.decode(b,!0);var k=0;if(f(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(b,4),"IHDR"!=f(b,4))null!=e&&e();else{f(b,17);e=b.substring(0,k);do{var n=l(b);if("IDAT"==f(b,4)){e=b.substring(0,k-8);"pHYs"==d&&
-"dpi"==c?(c=Math.round(g/.0254),c=m(c)+m(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+g;g=4294967295;g=Editor.updateCRC(g,d,0,4);g=Editor.updateCRC(g,c,0,c.length);e+=m(c.length)+d+c+m(g^4294967295);e+=b.substring(k-8,b.length);break}e+=b.substring(k-8,k-4+n);f(b,n);f(b,4)}while(n);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";
+e&&e(ia)}}),c,q)}catch(ma){null!=e&&e(ma)}};Editor.crcTable=[];for(var f=0;256>f;f++)for(var p=f,t=0;8>t;t++)p=1==(p&1)?3988292384^p>>>1:p>>>1,Editor.crcTable[f]=p;Editor.updateCRC=function(b,d,c,g){for(var e=0;e<g;e++)b=Editor.crcTable[(b^d.charCodeAt(c+e))&255]^b>>>8;return b};Editor.crc32=function(b){for(var d=-1,c=0;c<b.length;c++)d=d>>>8^Editor.crcTable[(d^b.charCodeAt(c))&255];return(d^-1)>>>0};Editor.writeGraphModelToPng=function(b,d,c,g,e){function f(b,d){var c=m;m+=d;return b.substring(c,
+m)}function l(b){b=f(b,4);return b.charCodeAt(3)+(b.charCodeAt(2)<<8)+(b.charCodeAt(1)<<16)+(b.charCodeAt(0)<<24)}function k(b){return String.fromCharCode(b>>24&255,b>>16&255,b>>8&255,b&255)}b=b.substring(b.indexOf(",")+1);b=window.atob?atob(b):Base64.decode(b,!0);var m=0;if(f(b,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13,10,26,10))null!=e&&e();else if(f(b,4),"IHDR"!=f(b,4))null!=e&&e();else{f(b,17);e=b.substring(0,m);do{var n=l(b);if("IDAT"==f(b,4)){e=b.substring(0,m-8);"pHYs"==d&&
+"dpi"==c?(c=Math.round(g/.0254),c=k(c)+k(c)+String.fromCharCode(1)):c=c+String.fromCharCode(0)+("zTXt"==d?String.fromCharCode(0):"")+g;g=4294967295;g=Editor.updateCRC(g,d,0,4);g=Editor.updateCRC(g,c,0,c.length);e+=k(c.length)+d+c+k(g^4294967295);e+=b.substring(m-8,b.length);break}e+=b.substring(m-8,m-4+n);f(b,n);f(b,4)}while(n);return"data:image/png;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.diagrams.net/doc/faq/save-file-formats";
var d=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(b,c){d.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var g=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){g.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(b,d){var c=null;null!=b.editor.graph.getModel().getParent(d)?c=d.getId():null!=b.currentPage&&
(c=b.currentPage.getId());return c});if(null!=window.StyleFormatPanel){var l=Format.prototype.init;Format.prototype.init=function(){l.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var q=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed||this.editorUi.editor.chromeless?q.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isShadowOptionVisible=function(){var b=this.editorUi.getCurrentFile();
return"1"==urlParams.embed||null!=b&&b.isEditable()};DiagramFormatPanel.prototype.isMathOptionVisible=function(b){return!1};var m=DiagramFormatPanel.prototype.addView;DiagramFormatPanel.prototype.addView=function(b){b=m.apply(this,arguments);this.editorUi.getCurrentFile();if(mxClient.IS_SVG&&this.isShadowOptionVisible()){var d=this.editorUi,c=d.editor.graph,g=this.createOption(mxResources.get("shadow"),function(){return c.shadowVisible},function(b){var g=new ChangePageSetup(d);g.ignoreColor=!0;g.ignoreImage=
@@ -3244,92 +3247,93 @@ type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity
type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size",type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},
{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width",type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",
min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"startSize",dispName:"Header Size",type:"float"},
-{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",
-type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=
-[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",
-dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",
-type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",
-type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},
-{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=
-[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},
-{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=[{name:"width",dispName:"Title Width",type:"float",defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",
-stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",font:"#ffffff"},{fill:"#008a00",stroke:"#005700",font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},
-{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",
-stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",
-gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(b,d,c){if(null!=d){var g=function(b){if(null!=b)if(c)for(var g=
-0;g<b.length;g++)d[b[g].name]=b[g];else for(var e in d){for(var f=!1,g=0;g<b.length;g++)if(b[g].name==e&&b[g].type==d[e].type){f=!0;break}f||delete d[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),
-g(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{g(JSON.parse(b))}catch(Q){}}};var u=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.editorUi.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));u.apply(this,arguments);if(Editor.enableCustomProperties){for(var d={},c=b.vertices,g=b.edges,e=0;e<c.length;e++)this.findCommonProperties(c[e],d,
-0==e);for(e=0;e<g.length;e++)this.findCommonProperties(g[e],d,0==c.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(d).length&&this.container.appendChild(this.addProperties(this.createPanel(),d,b))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){this.addActions(b,["copyStyle","pasteStyle"]);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function g(b,
-d,c,g){u.getModel().beginUpdate();try{var e=[],f=[];if(null!=c.index){for(var l=[],m=c.parentRow.nextSibling;m&&m.getAttribute("data-pName")==b;)l.push(m.getAttribute("data-pValue")),m=m.nextSibling;c.index<l.length?null!=g?l.splice(g,1):l[c.index]=d:l.push(d);null!=c.size&&l.length>c.size&&(l=l.slice(0,c.size));d=l.join(",");null!=c.countProperty&&(u.setCellStyles(c.countProperty,l.length,u.getSelectionCells()),e.push(c.countProperty),f.push(l.length))}u.setCellStyles(b,d,u.getSelectionCells());
-e.push(b);f.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var k=c.dependentPropsDefVal[b],n=c.dependentPropsVals[b];if(n.length>d)n=n.slice(0,d);else for(var p=n.length;p<d;p++)n.push(k);n=n.join(",");u.setCellStyles(c.dependentProps[b],n,u.getSelectionCells());e.push(c.dependentProps[b]);f.push(n)}if("function"==typeof c.onChange)c.onChange(u,d);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",f,"cells",u.getSelectionCells()))}finally{u.getModel().endUpdate()}}
-function e(d,c,g){var e=mxUtils.getOffset(b,!0),f=mxUtils.getOffset(d,!0);c.style.position="absolute";c.style.left=f.x-e.x+"px";c.style.top=f.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(g?4:0)+"px";c.style.zIndex=5}function f(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height="4px";e.style.margin="2px";e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,
-function(f){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;g(b,d,c)});mxEvent.consume(f)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function l(b,d,c,e,f,l,m){null!=d&&(d=d.split(","),v.push({name:b,values:d,type:c,defVal:e,countProperty:f,parentRow:l,isDeletable:!0,flipBkg:m}));btn=mxUtils.button("+",mxUtils.bind(q,function(d){for(var k=l,q=0;null!=k.nextSibling;)if(k.nextSibling.getAttribute("data-pName")==
-b)k=k.nextSibling,q++;else break;var u={type:c,parentRow:l,index:q,isDeletable:!0,defVal:e,countProperty:f},q=n(b,"",u,0==q%2,m);g(b,e,u);k.parentNode.insertBefore(q,k.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function m(b,d,c,g,e,f,l){if(0<e){var m=Array(e);d=null!=d?d.split(","):[];for(var k=0;k<e;k++)m[k]=null!=d[k]?d[k]:null!=g?g:"";v.push({name:b,values:m,type:c,defVal:g,parentRow:f,flipBkg:l,size:e})}return document.createElement("div")}
-function k(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){g(b,e.checked?"1":"0",c)});return e}function n(d,c,n,u,p){var v=n.dispName,x=n.type,t=document.createElement("tr");t.className="gePropRow"+(p?"Dark":"")+(u?"Alt":"")+" gePropNonHeaderRow";t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);u=!1;null!=n.index&&(t.setAttribute("data-index",n.index),v=(null!=v?v:"")+"["+n.index+"]",u=!0);var z=document.createElement("td");
-z.className="gePropRowCell";v=mxResources.get(v,null,v);mxUtils.write(z,v);z.setAttribute("title",v);u&&(z.style.textAlign="right");t.appendChild(z);z=document.createElement("td");z.className="gePropRowCell";if("color"==x)z.appendChild(f(d,c,n));else if("bool"==x||"boolean"==x)z.appendChild(k(d,c,n));else if("enum"==x){var y=n.enumList;for(p=0;p<y.length;p++)if(v=y[p],v.val==c){mxUtils.write(z,mxResources.get(v.dispName,null,v.dispName));break}mxEvent.addListener(z,"click",mxUtils.bind(q,function(){var f=
-document.createElement("select");e(z,f);for(var l=0;l<y.length;l++){var m=y[l],k=document.createElement("option");k.value=mxUtils.htmlEntities(m.val);mxUtils.write(k,mxResources.get(m.dispName,null,m.dispName));f.appendChild(k)}f.value=c;b.appendChild(f);mxEvent.addListener(f,"change",function(){var b=mxUtils.htmlEntities(f.value);g(d,b,n)});f.focus();mxEvent.addListener(f,"blur",function(){b.removeChild(f)})}))}else"dynamicArr"==x?z.appendChild(l(d,c,n.subType,n.subDefVal,n.countProperty,t,p)):"staticArr"==
-x?z.appendChild(m(d,c,n.subType,n.subDefVal,n.size,t,p)):"readOnly"==x?(p=document.createElement("input"),p.setAttribute("readonly",""),p.value=c,p.style.width="96px",p.style.borderWidth="0px",z.appendChild(p)):(z.innerHTML=c,mxEvent.addListener(z,"click",mxUtils.bind(q,function(){function f(){var b=l.value,b=0==b.length&&"string"!=x?0:b;n.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",x="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=n.min&&b<n.min?b=n.min:null!=n.max&&b>n.max&&
-(b=n.max);b=mxUtils.htmlEntities(("int"==x?parseInt(b):b)+"");g(d,b,n)}var l=document.createElement("input");e(z,l,!0);l.value=c;l.className="gePropEditor";"int"!=x&&"float"!=x||n.allowAuto||(l.type="number",l.step="int"==x?"1":"any",null!=n.min&&(l.min=parseFloat(n.min)),null!=n.max&&(l.max=parseFloat(n.max)));b.appendChild(l);mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&f()});l.focus();mxEvent.addListener(l,"blur",function(){f()})})));n.isDeletable&&(p=mxUtils.button("-",mxUtils.bind(q,
-function(b){g(d,"",n,n.index);mxEvent.consume(b)})),p.style.height="16px",p.style.width="25px",p.style["float"]="right",p.className="geColorBtn",z.appendChild(p));t.appendChild(z);return t}var q=this,u=this.editorUi.editor.graph,v=[];b.style.position="relative";b.style.padding="0";var p=document.createElement("table");p.className="geProperties";p.style.whiteSpace="nowrap";p.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var t=document.createElement("th");t.className=
-"gePropHeaderCell";var z=document.createElement("img");z.src=Sidebar.prototype.expandedImage;z.style.verticalAlign="middle";t.appendChild(z);mxUtils.write(t,mxResources.get("property"));x.style.cursor="pointer";var y=function(){var d=p.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){z.src=Sidebar.prototype.collapsedImage;c="none";for(var g=b.childNodes.length-1;0<=g;g--)try{var e=b.childNodes[g],f=e.nodeName.toUpperCase();"INPUT"!=f&&"SELECT"!=f||b.removeChild(e)}catch(pa){}}else z.src=
-Sidebar.prototype.expandedImage,c="";for(g=0;g<d.length;g++)d[g].style.display=c};mxEvent.addListener(x,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;y()});x.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";t.innerHTML=mxResources.get("value");x.appendChild(t);p.appendChild(x);var G=!1,C=!1,x=null;1==c.vertices.length&&0==c.edges.length?x=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(x=c.edges[0].id);null!=x&&p.appendChild(n("id",
-mxUtils.htmlEntities(x),{dispName:"ID",type:"readOnly"},!0,!1));for(var B in d)if(x=d[B],"function"!=typeof x.isVisible||x.isVisible(c,this)){var L=null!=c.style[B]?mxUtils.htmlEntities(c.style[B]+""):null!=x.getDefaultValue?x.getDefaultValue(c,this):x.defVal;if("separator"==x.type)C=!C;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]||d[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var I=x.dependentProps,D=[],M=[],t=0;t<I.length;t++){var F=c.style[I[t]];M.push(d[I[t]].subDefVal);
-D.push(null!=F?F.split(","):[])}x.dependentPropsDefVal=M;x.dependentPropsVals=D}p.appendChild(n(B,L,x,G,C));G=!G}}for(t=0;t<v.length;t++)for(x=v[t],d=x.parentRow,c=0;c<x.values.length;c++)B=n(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size},0==c%2,x.flipBkg),d.parentNode.insertBefore(B,d.nextSibling),d=B;b.appendChild(p);y();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,
-"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,g=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";b.style.position="relative";b.appendChild(e);var f="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),
-l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.position="relative";l.style.textAlign="center";l.style.width="210px";for(var m=[],k=0;k<this.defaultColorSchemes.length;k++){var n=document.createElement("div");n.style.display="inline-block";n.style.width="6px";n.style.height="6px";n.style.marginLeft="4px";n.style.marginRight="3px";n.style.borderRadius="3px";n.style.cursor="pointer";n.style.background="transparent";n.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(n,
-"click",mxUtils.bind(this,function(){q(b)}))})(k);m.push(n);l.appendChild(n)}var q=mxUtils.bind(this,function(b){null!=m[b]&&(null!=this.format.currentScheme&&null!=m[this.format.currentScheme]&&(m[this.format.currentScheme].style.background="transparent"),this.format.currentScheme=b,u(this.defaultColorSchemes[this.format.currentScheme]),m[this.format.currentScheme].style.background="#84d7ff")}),u=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,
-function(d){g.getModel().beginUpdate();try{for(var e=c.getSelectionState().cells,l=0;l<e.length;l++){for(var m=g.getModel().getStyle(e[l]),k=0;k<f.length;k++)m=mxUtils.removeStylename(m,f[k]);var n=g.getModel().isVertex(e[l])?g.defaultVertexStyle:g.defaultEdgeStyle;null!=b?(mxEvent.isShiftDown(d)||(m=""==b.fill?mxUtils.setStyle(m,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(m,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,null)),m=mxUtils.setStyle(m,mxConstants.STYLE_GRADIENTCOLOR,
-b.gradient||mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(d)||mxClient.IS_MAC&&mxEvent.isMetaDown(d)||!g.getModel().isVertex(e[l])||(m=mxUtils.setStyle(m,mxConstants.STYLE_FONTCOLOR,b.font||mxUtils.getValue(n,mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(d)||(m=""==b.stroke?mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,null)))):(m=mxUtils.setStyle(m,
-mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,"#ffffff")),m=mxUtils.setStyle(m,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,"#000000")),m=mxUtils.setStyle(m,mxConstants.STYLE_GRADIENTCOLOR,mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),g.getModel().isVertex(e[l])&&(m=mxUtils.setStyle(m,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FONTCOLOR,null))));g.getModel().setStyle(e[l],m)}}finally{g.getModel().endUpdate()}}));
-d.className="geStyleButton";d.style.width="36px";d.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";d.style.margin="0px 6px 6px 0px";if(null!=b){var l="1"==urlParams.sketch?"2px solid":"1px solid";null!=b.gradient?mxClient.IS_IE&&10>document.documentMode?d.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":d.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?
-d.style.background="url('"+Dialog.prototype.noColorImage+"')":d.style.backgroundColor=""==b.fill?mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff"):b.fill||mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff");d.style.border=b.stroke==mxConstants.NONE?l+" transparent":""==b.stroke?l+" "+mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":
-Editor.darkColor):l+" "+(b.stroke||mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor));null!=b.title&&d.setAttribute("title",b.title)}else{var l=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff"),m=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");d.style.backgroundColor=l;d.style.border="1px solid "+m}d.style.borderRadius="0";e.appendChild(d)});e.innerHTML="";for(var l=0;l<b.length;l++)0<
-l&&0==mxUtils.mod(l,4)&&mxUtils.br(e),d(b[l])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):q(this.format.currentScheme);var k=10>=this.defaultColorSchemes.length?28:8,p=document.createElement("div");p.style.cssText="position:absolute;left:10px;top:8px;bottom:"+k+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";
-mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var v=document.createElement("div");v.style.cssText="position:absolute;left:202px;top:8px;bottom:"+k+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";
-1<this.defaultColorSchemes.length&&(b.appendChild(p),b.appendChild(v));mxEvent.addListener(v,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));d(p);d(v);u(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(l);return b};StyleFormatPanel.prototype.addEditOps=function(b){var d=this.editorUi.getSelectionState(),c=this.editorUi.editor.graph,g=null;1==d.cells.length&&(g=mxUtils.button(mxResources.get("editStyle"),
-mxUtils.bind(this,function(b){this.editorUi.actions.get("editStyle").funct()})),g.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),g.style.width="210px",g.style.marginBottom="2px",b.appendChild(g));c=1==d.cells.length?c.view.getState(d.cells[0]):null;null!=c&&null!=c.shape&&null!=c.shape.stencil?(d=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editShape").funct()})),d.setAttribute("title",
-mxResources.get("editShape")),d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),b.appendChild(d)):d.image&&0<d.cells.length&&(d=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(b){this.editorUi.actions.get("image").funct()})),d.setAttribute("title",mxResources.get("editImage")),d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),
-b.appendChild(d));return b}}Graph.customFontElements={};Graph.recentCustomFonts={};Graph.isGoogleFontUrl=function(b){return b.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS};Graph.isCssFontUrl=function(b){return Graph.isGoogleFontUrl(b)};Graph.createFontElement=function(b,d){var c;Graph.isCssFontUrl(d)?(c=document.createElement("link"),c.setAttribute("rel","stylesheet"),c.setAttribute("type","text/css"),c.setAttribute("charset","UTF-8"),c.setAttribute("href",d)):(c=document.createElement("style"),
-mxUtils.write(c,'@font-face {\nfont-family: "'+b+'";\nsrc: url("'+d+'");\n}'));return c};Graph.addFont=function(b,d,c){if(null!=b&&0<b.length&&null!=d&&0<d.length){var g=b.toLowerCase();if("helvetica"!=g&&"arial"!=b&&"sans-serif"!=g){var e=Graph.customFontElements[g];null!=e&&e.url!=d&&(e.elt.parentNode.removeChild(e.elt),e=null);null==e?(e=d,"http:"==d.substring(0,5)&&(e=PROXY_URL+"?url="+encodeURIComponent(d)),e={name:b,url:d,elt:Graph.createFontElement(b,e)},Graph.customFontElements[g]=e,Graph.recentCustomFonts[g]=
-e,d=document.getElementsByTagName("head")[0],null!=c&&("link"==e.elt.nodeName.toLowerCase()?(e.elt.onload=c,e.elt.onerror=c):c()),null!=d&&d.appendChild(e.elt)):null!=c&&c()}else null!=c&&c()}else null!=c&&c();return b};Graph.getFontUrl=function(b,d){var c=Graph.customFontElements[b.toLowerCase()];null!=c&&(d=c.url);return d};Graph.processFontAttributes=function(b){b=b.getElementsByTagName("*");for(var d=0;d<b.length;d++){var c=b[d].getAttribute("data-font-src");if(null!=c){var g="FONT"==b[d].nodeName?
-b[d].getAttribute("face"):b[d].style.fontFamily;null!=g&&Graph.addFont(g,c)}}};Graph.processFontStyle=function(b){if(null!=b){var d=mxUtils.getValue(b,"fontSource",null);if(null!=d){var c=mxUtils.getValue(b,mxConstants.STYLE_FONTFAMILY,null);null!=c&&Graph.addFont(c,decodeURIComponent(d))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible=
-"0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;Graph.prototype.defaultMathEnabled=!1;var y=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}y.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var d=
-null;mxEvent.addListener(this.container,"mouseenter",b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){d=null});this.isMouseInsertPoint=function(){return null!=d};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=d?this.getPointForEvent(d):c.apply(this,arguments)};var g=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var d=this.graph.getCellStyle(b);if(null!=d&&"rack"==d.childLayout){var c=new mxStackLayout(this.graph,
-!1);c.gridSize=null!=d.rackUnitSize?parseFloat(d.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;c.marginLeft=d.marginLeft||0;c.marginRight=d.marginRight||0;c.marginTop=d.marginTop||0;c.marginBottom=d.marginBottom||0;c.allowGaps=d.allowGaps||0;c.horizontal="1"==mxUtils.getValue(d,"horizontalRack","0");c.resizeParent=!1;c.fill=!0;return c}return g.apply(this,arguments)};this.updateGlobalUrlVariables()};var x=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=
-function(b,d){return Graph.processFontStyle(x.apply(this,arguments))};var F=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,f,l,m,k,n,q){F.apply(this,arguments);Graph.processFontAttributes(q)};var H=mxText.prototype.redraw;mxText.prototype.redraw=function(){H.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function g(){for(var b=l.getSelectionCells(),
-d=[],c=0;c<b.length;c++)l.isCellVisible(b[c])&&d.push(b[c]);l.setSelectionCells(d)}function e(b){l.hiddenTags=b?[]:m.slice();g();l.refresh()}function f(b,c){n.innerHTML="";if(0<b.length){var f=document.createElement("table");f.setAttribute("cellpadding","2");f.style.boxSizing="border-box";f.style.tableLayout="fixed";f.style.width="100%";var k=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var f=0>mxUtils.indexOf(l.hiddenTags,b),n=document.createElement("tr"),
-q=document.createElement("td");q.style.align="center";q.style.width="16px";var u=document.createElement("img");u.setAttribute("src",f?Editor.visibleImage:Editor.hiddenImage);u.setAttribute("title",mxResources.get(f?"hideIt":"show",[b]));mxUtils.setOpacity(u,f?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";if(d||Editor.isDarkMode())u.style.filter="invert(100%)";q.appendChild(u);mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(l.hiddenTags,b);mxEvent.isShiftDown(d)?
-e(0<=mxUtils.indexOf(l.hiddenTags,b)):(0>c?l.hiddenTags.push(b):0<=c&&l.hiddenTags.splice(c,1),g(),l.refresh());mxEvent.consume(d)});n.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,f?100:40);q.appendChild(a);
-mxEvent.addListener(q,"click",function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=l.getCellsForTags([b],null,null,!0);l.isEnabled()?l.setSelectionCells(c):l.highlightCells(c)}else if(f&&0<l.hiddenTags.length)e(!0);else{var c=m.slice(),k=mxUtils.indexOf(c,b);c.splice(k,1);l.hiddenTags=c;g();l.refresh()}mxEvent.consume(d)});n.appendChild(q);if(l.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==c){q.style.align="center";
-q.style.width="16px";u=document.createElement("img");u.setAttribute("src",Editor.crossImage);u.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(u,f?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";if(d||Editor.isDarkMode())u.style.filter="invert(100%)";mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(m,b);0<=c&&m.splice(c,1);l.removeTagsForCells(l.model.getDescendants(l.model.getRoot()),[b]);l.refresh();mxEvent.consume(d)});
-q.appendChild(u)}else{var p=document.createElement("input");p.setAttribute("type","checkbox");p.style.margin="0px";p.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);p.checked=p.defaultChecked;p.style.background="transparent";p.setAttribute("title",mxResources.get(p.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(p,"change",function(d){p.checked?l.addTagsForCells(l.getSelectionCells(),[b]):l.removeTagsForCells(l.getSelectionCells(),[b]);mxEvent.consume(d)});q.appendChild(p)}n.appendChild(q)}k.appendChild(n)})(b[q]);
-f.appendChild(k);n.appendChild(f)}}var l=this,m=l.hiddenTags.slice(),k=document.createElement("div");k.style.userSelect="none";k.style.overflow="hidden";k.style.padding="10px";k.style.height="100%";var n=document.createElement("div");n.style.boxSizing="border-box";n.style.borderRadius="4px";n.style.userSelect="none";n.style.overflow="auto";n.style.position="absolute";n.style.left="10px";n.style.right="10px";n.style.top="10px";n.style.border=l.isEnabled()?"1px solid #808080":"none";n.style.bottom=
-l.isEnabled()?"48px":"10px";k.appendChild(n);var q=mxUtils.button(mxResources.get("reset"),function(b){l.hiddenTags=[];mxEvent.isShiftDown(b)||(m=l.hiddenTags.slice());g();l.refresh()});q.setAttribute("title",mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var u=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(m,function(b){m=b;p()})});u.setAttribute("title",mxResources.get("add"));u.className="geBtn";u.style.margin="0";l.addListener(mxEvent.ROOT,function(){m=l.hiddenTags.slice()});
-var p=mxUtils.bind(this,function(d,c){if(b()){for(var g=l.getAllTags(),e=0;e<g.length;e++)0>mxUtils.indexOf(m,g[e])&&m.push(g[e]);m.sort();l.isSelectionEmpty()?f(m):f(m,l.getCommonTagsForCells(l.getSelectionCells()))}});l.selectionModel.addListener(mxEvent.CHANGE,p);l.model.addListener(mxEvent.CHANGE,p);l.addListener(mxEvent.REFRESH,p);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom=
-"0px";v.style.height="42px";v.style.right="10px";v.style.left="10px";l.isEnabled()&&(v.appendChild(q),v.appendChild(u),k.appendChild(v));return{div:k,refresh:p}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");
-d=Graph.getFontUrl(b,d);for(var g=0;g<c.length;g++)c[g].getAttribute("face")==b&&c[g].getAttribute("data-font-src")!=d&&c[g].setAttribute("data-font-src",d)}};var z=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return z.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};
-var b=JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(B){null!=window.console&&console.log("Error in vars URL parameter: "+B)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var D=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=D.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=
-function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var N=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,g,e,f,l,m,k,n,q,u,p,v){var x=null,t=null,z=null;u||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.shapeForegroundColor,z=this.shapeBackgroundColor,this.shapeForegroundColor=
-"darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var y=N.apply(this,arguments),C=this.getCustomFonts();if(q&&0<C.length){var L=y.ownerDocument,G=null!=L.createElementNS?L.createElementNS(mxConstants.NS_SVG,"style"):L.createElement("style");null!=L.setAttributeNS?G.setAttributeNS("type","text/css"):G.setAttribute("type","text/css");for(var B=
-"",D="",I=0;I<C.length;I++){var M=C[I].name,F=C[I].url;Graph.isCssFontUrl(F)?B+="@import url("+F+");\n":D+='@font-face {\nfont-family: "'+M+'";\nsrc: url("'+F+'");\n}\n'}G.appendChild(L.createTextNode(B+D));y.getElementsByTagName("defs")[0].appendChild(G)}null!=x&&(this.shapeBackgroundColor=z,this.shapeForegroundColor=t,this.stylesheet=x,this.refresh());return y};var E=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=E.apply(this,arguments);if(this.mathEnabled){var d=
+{name:"swimlaneHead",dispName:"Head Border",type:"bool",defVal:!0},{name:"swimlaneBody",dispName:"Body Border",type:"bool",defVal:!0},{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",
+type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},
+{name:"double",dispName:"Double",type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=
+[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},
+{name:"imageHeight",dispName:"Image Height",type:"float",min:0,defVal:24},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:12},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.dataStorage.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.1}];mxCellRenderer.defaultShapes.manualInput.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:30},{name:"arcSize",dispName:"Arc Size",
+type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.loopLimit.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.offPageConnector.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:38},{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.display.prototype.customProperties=[{name:"size",
+dispName:"Size",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.singleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.doubleArrow.prototype.customProperties=[{name:"arrowWidth",dispName:"Arrow Width",type:"float",min:0,max:1,defVal:.3},{name:"arrowSize",dispName:"Arrowhead Length",type:"float",min:0,max:1,
+defVal:.2}];mxCellRenderer.defaultShapes.cross.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.corner.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.tee.prototype.customProperties=[{name:"dx",dispName:"Width1",type:"float",min:0,defVal:20},{name:"dy",dispName:"Width2",type:"float",min:0,defVal:20}];
+mxCellRenderer.defaultShapes.umlLifeline.prototype.customProperties=[{name:"participant",dispName:"Participant",type:"enum",defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName:"Actor"},{val:"umlBoundary",dispName:"Boundary"},{val:"umlEntity",dispName:"Entity"},{val:"umlControl",dispName:"Control"}]},{name:"size",dispName:"Height",type:"float",defVal:40,min:0}];mxCellRenderer.defaultShapes.umlFrame.prototype.customProperties=[{name:"width",dispName:"Title Width",type:"float",
+defVal:60,min:0},{name:"height",dispName:"Title Height",type:"float",defVal:30,min:0}];StyleFormatPanel.prototype.defaultColorSchemes=[[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",font:"#333333"},{fill:"#dae8fc",stroke:"#6c8ebf"},{fill:"#d5e8d4",stroke:"#82b366"},{fill:"#ffe6cc",stroke:"#d79b00"},{fill:"#fff2cc",stroke:"#d6b656"},{fill:"#f8cecc",stroke:"#b85450"},{fill:"#e1d5e7",stroke:"#9673a6"}],[{fill:"",stroke:""},{fill:"#60a917",stroke:"#2D7600",font:"#ffffff"},{fill:"#008a00",stroke:"#005700",
+font:"#ffffff"},{fill:"#1ba1e2",stroke:"#006EAF",font:"#ffffff"},{fill:"#0050ef",stroke:"#001DBC",font:"#ffffff"},{fill:"#6a00ff",stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},
+{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00",font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",
+gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"},{fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},
+{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties=function(b,d,c){if(null!=d){var g=function(b){if(null!=b)if(c)for(var g=0;g<b.length;g++)d[b[g].name]=b[g];else for(var e in d){for(var f=!1,g=0;g<b.length;g++)if(b[g].name==e&&b[g].type==d[e].type){f=!0;break}f||delete d[e]}},e=this.editorUi.editor.graph.view.getState(b);null!=e&&null!=e.shape&&(e.shape.commonCustomPropAdded||(e.shape.commonCustomPropAdded=!0,e.shape.customProperties=
+e.shape.customProperties||[],e.cell.vertex?Array.prototype.push.apply(e.shape.customProperties,Editor.commonVertexProperties):Array.prototype.push.apply(e.shape.customProperties,Editor.commonEdgeProperties)),g(e.shape.customProperties));b=b.getAttribute("customProperties");if(null!=b)try{g(JSON.parse(b))}catch(Q){}}};var u=StyleFormatPanel.prototype.init;StyleFormatPanel.prototype.init=function(){var b=this.editorUi.getSelectionState();"image"!=b.style.shape&&!b.containsLabel&&0<b.cells.length&&this.container.appendChild(this.addStyles(this.createPanel()));
+u.apply(this,arguments);if(Editor.enableCustomProperties){for(var d={},c=b.vertices,g=b.edges,e=0;e<c.length;e++)this.findCommonProperties(c[e],d,0==e);for(e=0;e<g.length;e++)this.findCommonProperties(g[e],d,0==c.length&&0==e);null!=Object.getOwnPropertyNames&&0<Object.getOwnPropertyNames(d).length&&this.container.appendChild(this.addProperties(this.createPanel(),d,b))}};var v=StyleFormatPanel.prototype.addStyleOps;StyleFormatPanel.prototype.addStyleOps=function(b){this.addActions(b,["copyStyle",
+"pasteStyle"]);return v.apply(this,arguments)};EditorUi.prototype.propertiesCollapsed=!0;StyleFormatPanel.prototype.addProperties=function(b,d,c){function g(b,d,c,g){u.getModel().beginUpdate();try{var e=[],f=[];if(null!=c.index){for(var l=[],k=c.parentRow.nextSibling;k&&k.getAttribute("data-pName")==b;)l.push(k.getAttribute("data-pValue")),k=k.nextSibling;c.index<l.length?null!=g?l.splice(g,1):l[c.index]=d:l.push(d);null!=c.size&&l.length>c.size&&(l=l.slice(0,c.size));d=l.join(",");null!=c.countProperty&&
+(u.setCellStyles(c.countProperty,l.length,u.getSelectionCells()),e.push(c.countProperty),f.push(l.length))}u.setCellStyles(b,d,u.getSelectionCells());e.push(b);f.push(d);if(null!=c.dependentProps)for(b=0;b<c.dependentProps.length;b++){var m=c.dependentPropsDefVal[b],n=c.dependentPropsVals[b];if(n.length>d)n=n.slice(0,d);else for(var p=n.length;p<d;p++)n.push(m);n=n.join(",");u.setCellStyles(c.dependentProps[b],n,u.getSelectionCells());e.push(c.dependentProps[b]);f.push(n)}if("function"==typeof c.onChange)c.onChange(u,
+d);q.editorUi.fireEvent(new mxEventObject("styleChanged","keys",e,"values",f,"cells",u.getSelectionCells()))}finally{u.getModel().endUpdate()}}function e(d,c,g){var e=mxUtils.getOffset(b,!0),f=mxUtils.getOffset(d,!0);c.style.position="absolute";c.style.left=f.x-e.x+"px";c.style.top=f.y-e.y+"px";c.style.width=d.offsetWidth+"px";c.style.height=d.offsetHeight-(g?4:0)+"px";c.style.zIndex=5}function f(b,d,c){var e=document.createElement("div");e.style.width="32px";e.style.height="4px";e.style.margin="2px";
+e.style.border="1px solid black";e.style.background=d&&"none"!=d?d:"url('"+Dialog.prototype.noColorImage+"')";btn=mxUtils.button("",mxUtils.bind(q,function(f){this.editorUi.pickColor(d,function(d){e.style.background="none"==d?"url('"+Dialog.prototype.noColorImage+"')":d;g(b,d,c)});mxEvent.consume(f)}));btn.style.height="12px";btn.style.width="40px";btn.className="geColorBtn";btn.appendChild(e);return btn}function l(b,d,c,e,f,l,k){null!=d&&(d=d.split(","),v.push({name:b,values:d,type:c,defVal:e,countProperty:f,
+parentRow:l,isDeletable:!0,flipBkg:k}));btn=mxUtils.button("+",mxUtils.bind(q,function(d){for(var m=l,q=0;null!=m.nextSibling;)if(m.nextSibling.getAttribute("data-pName")==b)m=m.nextSibling,q++;else break;var u={type:c,parentRow:l,index:q,isDeletable:!0,defVal:e,countProperty:f},q=n(b,"",u,0==q%2,k);g(b,e,u);m.parentNode.insertBefore(q,m.nextSibling);mxEvent.consume(d)}));btn.style.height="16px";btn.style.width="25px";btn.className="geColorBtn";return btn}function k(b,d,c,g,e,f,l){if(0<e){var k=Array(e);
+d=null!=d?d.split(","):[];for(var m=0;m<e;m++)k[m]=null!=d[m]?d[m]:null!=g?g:"";v.push({name:b,values:k,type:c,defVal:g,parentRow:f,flipBkg:l,size:e})}return document.createElement("div")}function m(b,d,c){var e=document.createElement("input");e.type="checkbox";e.checked="1"==d;mxEvent.addListener(e,"change",function(){g(b,e.checked?"1":"0",c)});return e}function n(d,c,n,u,p){var x=n.dispName,v=n.type,t=document.createElement("tr");t.className="gePropRow"+(p?"Dark":"")+(u?"Alt":"")+" gePropNonHeaderRow";
+t.setAttribute("data-pName",d);t.setAttribute("data-pValue",c);u=!1;null!=n.index&&(t.setAttribute("data-index",n.index),x=(null!=x?x:"")+"["+n.index+"]",u=!0);var z=document.createElement("td");z.className="gePropRowCell";x=mxResources.get(x,null,x);mxUtils.write(z,x);z.setAttribute("title",x);u&&(z.style.textAlign="right");t.appendChild(z);z=document.createElement("td");z.className="gePropRowCell";if("color"==v)z.appendChild(f(d,c,n));else if("bool"==v||"boolean"==v)z.appendChild(m(d,c,n));else if("enum"==
+v){var y=n.enumList;for(p=0;p<y.length;p++)if(x=y[p],x.val==c){mxUtils.write(z,mxResources.get(x.dispName,null,x.dispName));break}mxEvent.addListener(z,"click",mxUtils.bind(q,function(){var f=document.createElement("select");e(z,f);for(var l=0;l<y.length;l++){var k=y[l],m=document.createElement("option");m.value=mxUtils.htmlEntities(k.val);mxUtils.write(m,mxResources.get(k.dispName,null,k.dispName));f.appendChild(m)}f.value=c;b.appendChild(f);mxEvent.addListener(f,"change",function(){var b=mxUtils.htmlEntities(f.value);
+g(d,b,n)});f.focus();mxEvent.addListener(f,"blur",function(){b.removeChild(f)})}))}else"dynamicArr"==v?z.appendChild(l(d,c,n.subType,n.subDefVal,n.countProperty,t,p)):"staticArr"==v?z.appendChild(k(d,c,n.subType,n.subDefVal,n.size,t,p)):"readOnly"==v?(p=document.createElement("input"),p.setAttribute("readonly",""),p.value=c,p.style.width="96px",p.style.borderWidth="0px",z.appendChild(p)):(z.innerHTML=c,mxEvent.addListener(z,"click",mxUtils.bind(q,function(){function f(){var b=l.value,b=0==b.length&&
+"string"!=v?0:b;n.allowAuto&&(null!=b.trim&&"auto"==b.trim().toLowerCase()?(b="auto",v="string"):(b=parseFloat(b),b=isNaN(b)?0:b));null!=n.min&&b<n.min?b=n.min:null!=n.max&&b>n.max&&(b=n.max);b=mxUtils.htmlEntities(("int"==v?parseInt(b):b)+"");g(d,b,n)}var l=document.createElement("input");e(z,l,!0);l.value=c;l.className="gePropEditor";"int"!=v&&"float"!=v||n.allowAuto||(l.type="number",l.step="int"==v?"1":"any",null!=n.min&&(l.min=parseFloat(n.min)),null!=n.max&&(l.max=parseFloat(n.max)));b.appendChild(l);
+mxEvent.addListener(l,"keypress",function(b){13==b.keyCode&&f()});l.focus();mxEvent.addListener(l,"blur",function(){f()})})));n.isDeletable&&(p=mxUtils.button("-",mxUtils.bind(q,function(b){g(d,"",n,n.index);mxEvent.consume(b)})),p.style.height="16px",p.style.width="25px",p.style["float"]="right",p.className="geColorBtn",z.appendChild(p));t.appendChild(z);return t}var q=this,u=this.editorUi.editor.graph,v=[];b.style.position="relative";b.style.padding="0";var p=document.createElement("table");p.className=
+"geProperties";p.style.whiteSpace="nowrap";p.style.width="100%";var x=document.createElement("tr");x.className="gePropHeader";var t=document.createElement("th");t.className="gePropHeaderCell";var z=document.createElement("img");z.src=Sidebar.prototype.expandedImage;z.style.verticalAlign="middle";t.appendChild(z);mxUtils.write(t,mxResources.get("property"));x.style.cursor="pointer";var y=function(){var d=p.querySelectorAll(".gePropNonHeaderRow"),c;if(q.editorUi.propertiesCollapsed){z.src=Sidebar.prototype.collapsedImage;
+c="none";for(var g=b.childNodes.length-1;0<=g;g--)try{var e=b.childNodes[g],f=e.nodeName.toUpperCase();"INPUT"!=f&&"SELECT"!=f||b.removeChild(e)}catch(pa){}}else z.src=Sidebar.prototype.expandedImage,c="";for(g=0;g<d.length;g++)d[g].style.display=c};mxEvent.addListener(x,"click",function(){q.editorUi.propertiesCollapsed=!q.editorUi.propertiesCollapsed;y()});x.appendChild(t);t=document.createElement("th");t.className="gePropHeaderCell";t.innerHTML=mxResources.get("value");x.appendChild(t);p.appendChild(x);
+var C=!1,G=!1,x=null;1==c.vertices.length&&0==c.edges.length?x=c.vertices[0].id:0==c.vertices.length&&1==c.edges.length&&(x=c.edges[0].id);null!=x&&p.appendChild(n("id",mxUtils.htmlEntities(x),{dispName:"ID",type:"readOnly"},!0,!1));for(var B in d)if(x=d[B],"function"!=typeof x.isVisible||x.isVisible(c,this)){var M=null!=c.style[B]?mxUtils.htmlEntities(c.style[B]+""):null!=x.getDefaultValue?x.getDefaultValue(c,this):x.defVal;if("separator"==x.type)G=!G;else{if("staticArr"==x.type)x.size=parseInt(c.style[x.sizeProperty]||
+d[x.sizeProperty].defVal)||0;else if(null!=x.dependentProps){for(var I=x.dependentProps,L=[],D=[],t=0;t<I.length;t++){var F=c.style[I[t]];D.push(d[I[t]].subDefVal);L.push(null!=F?F.split(","):[])}x.dependentPropsDefVal=D;x.dependentPropsVals=L}p.appendChild(n(B,M,x,C,G));C=!C}}for(t=0;t<v.length;t++)for(x=v[t],d=x.parentRow,c=0;c<x.values.length;c++)B=n(x.name,x.values[c],{type:x.type,parentRow:x.parentRow,isDeletable:x.isDeletable,index:c,defVal:x.defVal,countProperty:x.countProperty,size:x.size},
+0==c%2,x.flipBkg),d.parentNode.insertBefore(B,d.nextSibling),d=B;b.appendChild(p);y();return b};StyleFormatPanel.prototype.addStyles=function(b){function d(b){mxEvent.addListener(b,"mouseenter",function(){b.style.opacity="1"});mxEvent.addListener(b,"mouseleave",function(){b.style.opacity="0.5"})}var c=this.editorUi,g=c.editor.graph,e=document.createElement("div");e.style.whiteSpace="nowrap";e.style.paddingLeft="24px";e.style.paddingRight="20px";b.style.paddingLeft="16px";b.style.paddingBottom="6px";
+b.style.position="relative";b.appendChild(e);var f="plain-gray plain-blue plain-green plain-turquoise plain-orange plain-yellow plain-red plain-pink plain-purple gray blue green turquoise orange yellow red pink purple".split(" "),l=document.createElement("div");l.style.whiteSpace="nowrap";l.style.position="relative";l.style.textAlign="center";l.style.width="210px";for(var k=[],m=0;m<this.defaultColorSchemes.length;m++){var n=document.createElement("div");n.style.display="inline-block";n.style.width=
+"6px";n.style.height="6px";n.style.marginLeft="4px";n.style.marginRight="3px";n.style.borderRadius="3px";n.style.cursor="pointer";n.style.background="transparent";n.style.border="1px solid #b5b6b7";mxUtils.bind(this,function(b){mxEvent.addListener(n,"click",mxUtils.bind(this,function(){q(b)}))})(m);k.push(n);l.appendChild(n)}var q=mxUtils.bind(this,function(b){null!=k[b]&&(null!=this.format.currentScheme&&null!=k[this.format.currentScheme]&&(k[this.format.currentScheme].style.background="transparent"),
+this.format.currentScheme=b,u(this.defaultColorSchemes[this.format.currentScheme]),k[this.format.currentScheme].style.background="#84d7ff")}),u=mxUtils.bind(this,function(b){var d=mxUtils.bind(this,function(b){var d=mxUtils.button("",mxUtils.bind(this,function(d){g.getModel().beginUpdate();try{for(var e=c.getSelectionState().cells,l=0;l<e.length;l++){for(var k=g.getModel().getStyle(e[l]),m=0;m<f.length;m++)k=mxUtils.removeStylename(k,f[m]);var n=g.getModel().isVertex(e[l])?g.defaultVertexStyle:g.defaultEdgeStyle;
+null!=b?(mxEvent.isShiftDown(d)||(k=""==b.fill?mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,b.fill||mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,null)),k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,b.gradient||mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),mxEvent.isControlDown(d)||mxClient.IS_MAC&&mxEvent.isMetaDown(d)||!g.getModel().isVertex(e[l])||(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,b.font||mxUtils.getValue(n,
+mxConstants.STYLE_FONTCOLOR,null)))),mxEvent.isAltDown(d)||(k=""==b.stroke?mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,null):mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,b.stroke||mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,null)))):(k=mxUtils.setStyle(k,mxConstants.STYLE_FILLCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FILLCOLOR,"#ffffff")),k=mxUtils.setStyle(k,mxConstants.STYLE_STROKECOLOR,mxUtils.getValue(n,mxConstants.STYLE_STROKECOLOR,"#000000")),k=mxUtils.setStyle(k,mxConstants.STYLE_GRADIENTCOLOR,
+mxUtils.getValue(n,mxConstants.STYLE_GRADIENTCOLOR,null)),g.getModel().isVertex(e[l])&&(k=mxUtils.setStyle(k,mxConstants.STYLE_FONTCOLOR,mxUtils.getValue(n,mxConstants.STYLE_FONTCOLOR,null))));g.getModel().setStyle(e[l],k)}}finally{g.getModel().endUpdate()}}));d.className="geStyleButton";d.style.width="36px";d.style.height=10>=this.defaultColorSchemes.length?"24px":"30px";d.style.margin="0px 6px 6px 0px";if(null!=b){var l="1"==urlParams.sketch?"2px solid":"1px solid";null!=b.gradient?mxClient.IS_IE&&
+10>document.documentMode?d.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+b.fill+"', EndColorStr='"+b.gradient+"', GradientType=0)":d.style.backgroundImage="linear-gradient("+b.fill+" 0px,"+b.gradient+" 100%)":b.fill==mxConstants.NONE?d.style.background="url('"+Dialog.prototype.noColorImage+"')":d.style.backgroundColor=""==b.fill?mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff"):b.fill||mxUtils.getValue(g.defaultVertexStyle,
+mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff");d.style.border=b.stroke==mxConstants.NONE?l+" transparent":""==b.stroke?l+" "+mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor):l+" "+(b.stroke||mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor));null!=b.title&&d.setAttribute("title",b.title)}else{var l=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,
+"#ffffff"),k=mxUtils.getValue(g.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,"#000000");d.style.backgroundColor=l;d.style.border="1px solid "+k}d.style.borderRadius="0";e.appendChild(d)});e.innerHTML="";for(var l=0;l<b.length;l++)0<l&&0==mxUtils.mod(l,4)&&mxUtils.br(e),d(b[l])});null==this.format.currentScheme?q(Editor.isDarkMode()?1:"1"==urlParams.sketch?5:0):q(this.format.currentScheme);var m=10>=this.defaultColorSchemes.length?28:8,p=document.createElement("div");p.style.cssText="position:absolute;left:10px;top:8px;bottom:"+
+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(p,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));
+var v=document.createElement("div");v.style.cssText="position:absolute;left:202px;top:8px;bottom:"+m+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";1<this.defaultColorSchemes.length&&
+(b.appendChild(p),b.appendChild(v));mxEvent.addListener(v,"click",mxUtils.bind(this,function(){q(mxUtils.mod(this.format.currentScheme+1,this.defaultColorSchemes.length))}));d(p);d(v);u(this.defaultColorSchemes[this.format.currentScheme]);10>=this.defaultColorSchemes.length&&b.appendChild(l);return b};StyleFormatPanel.prototype.addEditOps=function(b){var d=this.editorUi.getSelectionState(),c=this.editorUi.editor.graph,g=null;1==d.cells.length&&(g=mxUtils.button(mxResources.get("editStyle"),mxUtils.bind(this,
+function(b){this.editorUi.actions.get("editStyle").funct()})),g.setAttribute("title",mxResources.get("editStyle")+" ("+this.editorUi.actions.get("editStyle").shortcut+")"),g.style.width="210px",g.style.marginBottom="2px",b.appendChild(g));c=1==d.cells.length?c.view.getState(d.cells[0]):null;null!=c&&null!=c.shape&&null!=c.shape.stencil?(d=mxUtils.button(mxResources.get("editShape"),mxUtils.bind(this,function(b){this.editorUi.actions.get("editShape").funct()})),d.setAttribute("title",mxResources.get("editShape")),
+d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),b.appendChild(d)):d.image&&0<d.cells.length&&(d=mxUtils.button(mxResources.get("editImage"),mxUtils.bind(this,function(b){this.editorUi.actions.get("image").funct()})),d.setAttribute("title",mxResources.get("editImage")),d.style.marginBottom="2px",null==g?d.style.width="210px":(g.style.width="104px",d.style.width="104px",d.style.marginLeft="2px"),b.appendChild(d));return b}}Graph.customFontElements=
+{};Graph.recentCustomFonts={};Graph.isGoogleFontUrl=function(b){return b.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS};Graph.isCssFontUrl=function(b){return Graph.isGoogleFontUrl(b)};Graph.createFontElement=function(b,d){var c;Graph.isCssFontUrl(d)?(c=document.createElement("link"),c.setAttribute("rel","stylesheet"),c.setAttribute("type","text/css"),c.setAttribute("charset","UTF-8"),c.setAttribute("href",d)):(c=document.createElement("style"),mxUtils.write(c,'@font-face {\nfont-family: "'+
+b+'";\nsrc: url("'+d+'");\n}'));return c};Graph.addFont=function(b,d,c){if(null!=b&&0<b.length&&null!=d&&0<d.length){var g=b.toLowerCase();if("helvetica"!=g&&"arial"!=b&&"sans-serif"!=g){var e=Graph.customFontElements[g];null!=e&&e.url!=d&&(e.elt.parentNode.removeChild(e.elt),e=null);null==e?(e=d,"http:"==d.substring(0,5)&&(e=PROXY_URL+"?url="+encodeURIComponent(d)),e={name:b,url:d,elt:Graph.createFontElement(b,e)},Graph.customFontElements[g]=e,Graph.recentCustomFonts[g]=e,d=document.getElementsByTagName("head")[0],
+null!=c&&("link"==e.elt.nodeName.toLowerCase()?(e.elt.onload=c,e.elt.onerror=c):c()),null!=d&&d.appendChild(e.elt)):null!=c&&c()}else null!=c&&c()}else null!=c&&c();return b};Graph.getFontUrl=function(b,d){var c=Graph.customFontElements[b.toLowerCase()];null!=c&&(d=c.url);return d};Graph.processFontAttributes=function(b){b=b.getElementsByTagName("*");for(var d=0;d<b.length;d++){var c=b[d].getAttribute("data-font-src");if(null!=c){var g="FONT"==b[d].nodeName?b[d].getAttribute("face"):b[d].style.fontFamily;
+null!=g&&Graph.addFont(g,c)}}};Graph.processFontStyle=function(b){if(null!=b){var d=mxUtils.getValue(b,"fontSource",null);if(null!=d){var c=mxUtils.getValue(b,mxConstants.STYLE_FONTFAMILY,null);null!=c&&Graph.addFont(c,decodeURIComponent(d))}}return b};Graph.prototype.defaultThemeName="default-style2";Graph.prototype.lastPasteXml=null;Graph.prototype.pasteCounter=0;Graph.prototype.defaultScrollbars="0"!=urlParams.sb;Graph.prototype.defaultPageVisible="0"!=urlParams.pv;Graph.prototype.shadowId="dropShadow";
+Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity="0.4";Graph.prototype.svgShadowBlur="1.7";Graph.prototype.svgShadowSize="3";Graph.prototype.edgeMode="move"!=urlParams.edge;Graph.prototype.hiddenTags=null;Graph.prototype.defaultMathEnabled=!1;var y=Graph.prototype.init;Graph.prototype.init=function(){function b(b){d=b}y.apply(this,arguments);this.hiddenTags=[];window.mxFreehand&&(this.freehand=new mxFreehand(this));var d=null;mxEvent.addListener(this.container,"mouseenter",
+b);mxEvent.addListener(this.container,"mousemove",b);mxEvent.addListener(this.container,"mouseleave",function(b){d=null});this.isMouseInsertPoint=function(){return null!=d};var c=this.getInsertPoint;this.getInsertPoint=function(){return null!=d?this.getPointForEvent(d):c.apply(this,arguments)};var g=this.layoutManager.getLayout;this.layoutManager.getLayout=function(b){var d=this.graph.getCellStyle(b);if(null!=d&&"rack"==d.childLayout){var c=new mxStackLayout(this.graph,!1);c.gridSize=null!=d.rackUnitSize?
+parseFloat(d.rackUnitSize):"undefined"!==typeof mxRackContainer?mxRackContainer.unitSize:20;c.marginLeft=d.marginLeft||0;c.marginRight=d.marginRight||0;c.marginTop=d.marginTop||0;c.marginBottom=d.marginBottom||0;c.allowGaps=d.allowGaps||0;c.horizontal="1"==mxUtils.getValue(d,"horizontalRack","0");c.resizeParent=!1;c.fill=!0;return c}return g.apply(this,arguments)};this.updateGlobalUrlVariables()};var x=Graph.prototype.postProcessCellStyle;Graph.prototype.postProcessCellStyle=function(b,d){return Graph.processFontStyle(x.apply(this,
+arguments))};var F=mxSvgCanvas2D.prototype.updateTextNodes;mxSvgCanvas2D.prototype.updateTextNodes=function(b,d,c,g,e,f,l,k,m,n,q){F.apply(this,arguments);Graph.processFontAttributes(q)};var H=mxText.prototype.redraw;mxText.prototype.redraw=function(){H.apply(this,arguments);null!=this.node&&"DIV"==this.node.nodeName&&Graph.processFontAttributes(this.node)};Graph.prototype.createTagsDialog=function(b,d,c){function g(){for(var b=l.getSelectionCells(),d=[],c=0;c<b.length;c++)l.isCellVisible(b[c])&&
+d.push(b[c]);l.setSelectionCells(d)}function e(b){l.hiddenTags=b?[]:k.slice();g();l.refresh()}function f(b,c){n.innerHTML="";if(0<b.length){var f=document.createElement("table");f.setAttribute("cellpadding","2");f.style.boxSizing="border-box";f.style.tableLayout="fixed";f.style.width="100%";var m=document.createElement("tbody");if(null!=b&&0<b.length)for(var q=0;q<b.length;q++)(function(b){var f=0>mxUtils.indexOf(l.hiddenTags,b),n=document.createElement("tr"),q=document.createElement("td");q.style.align=
+"center";q.style.width="16px";var u=document.createElement("img");u.setAttribute("src",f?Editor.visibleImage:Editor.hiddenImage);u.setAttribute("title",mxResources.get(f?"hideIt":"show",[b]));mxUtils.setOpacity(u,f?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";if(d||Editor.isDarkMode())u.style.filter="invert(100%)";q.appendChild(u);mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(l.hiddenTags,b);mxEvent.isShiftDown(d)?e(0<=mxUtils.indexOf(l.hiddenTags,
+b)):(0>c?l.hiddenTags.push(b):0<=c&&l.hiddenTags.splice(c,1),g(),l.refresh());mxEvent.consume(d)});n.appendChild(q);q=document.createElement("td");q.style.overflow="hidden";q.style.whiteSpace="nowrap";q.style.textOverflow="ellipsis";q.style.verticalAlign="middle";q.style.cursor="pointer";q.setAttribute("title",b);a=document.createElement("a");mxUtils.write(a,b);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,f?100:40);q.appendChild(a);mxEvent.addListener(q,"click",
+function(d){if(mxEvent.isShiftDown(d)){e(!0);var c=l.getCellsForTags([b],null,null,!0);l.isEnabled()?l.setSelectionCells(c):l.highlightCells(c)}else if(f&&0<l.hiddenTags.length)e(!0);else{var c=k.slice(),m=mxUtils.indexOf(c,b);c.splice(m,1);l.hiddenTags=c;g();l.refresh()}mxEvent.consume(d)});n.appendChild(q);if(l.isEnabled()){q=document.createElement("td");q.style.verticalAlign="middle";q.style.textAlign="center";q.style.width="18px";if(null==c){q.style.align="center";q.style.width="16px";u=document.createElement("img");
+u.setAttribute("src",Editor.crossImage);u.setAttribute("title",mxResources.get("removeIt",[b]));mxUtils.setOpacity(u,f?75:25);u.style.verticalAlign="middle";u.style.cursor="pointer";u.style.width="16px";if(d||Editor.isDarkMode())u.style.filter="invert(100%)";mxEvent.addListener(u,"click",function(d){var c=mxUtils.indexOf(k,b);0<=c&&k.splice(c,1);l.removeTagsForCells(l.model.getDescendants(l.model.getRoot()),[b]);l.refresh();mxEvent.consume(d)});q.appendChild(u)}else{var p=document.createElement("input");
+p.setAttribute("type","checkbox");p.style.margin="0px";p.defaultChecked=null!=c&&0<=mxUtils.indexOf(c,b);p.checked=p.defaultChecked;p.style.background="transparent";p.setAttribute("title",mxResources.get(p.defaultChecked?"removeIt":"add",[b]));mxEvent.addListener(p,"change",function(d){p.checked?l.addTagsForCells(l.getSelectionCells(),[b]):l.removeTagsForCells(l.getSelectionCells(),[b]);mxEvent.consume(d)});q.appendChild(p)}n.appendChild(q)}m.appendChild(n)})(b[q]);f.appendChild(m);n.appendChild(f)}}
+var l=this,k=l.hiddenTags.slice(),m=document.createElement("div");m.style.userSelect="none";m.style.overflow="hidden";m.style.padding="10px";m.style.height="100%";var n=document.createElement("div");n.style.boxSizing="border-box";n.style.borderRadius="4px";n.style.userSelect="none";n.style.overflow="auto";n.style.position="absolute";n.style.left="10px";n.style.right="10px";n.style.top="10px";n.style.border=l.isEnabled()?"1px solid #808080":"none";n.style.bottom=l.isEnabled()?"48px":"10px";m.appendChild(n);
+var q=mxUtils.button(mxResources.get("reset"),function(b){l.hiddenTags=[];mxEvent.isShiftDown(b)||(k=l.hiddenTags.slice());g();l.refresh()});q.setAttribute("title",mxResources.get("reset"));q.className="geBtn";q.style.margin="0 4px 0 0";var u=mxUtils.button(mxResources.get("add"),function(){null!=c&&c(k,function(b){k=b;p()})});u.setAttribute("title",mxResources.get("add"));u.className="geBtn";u.style.margin="0";l.addListener(mxEvent.ROOT,function(){k=l.hiddenTags.slice()});var p=mxUtils.bind(this,
+function(d,c){if(b()){for(var g=l.getAllTags(),e=0;e<g.length;e++)0>mxUtils.indexOf(k,g[e])&&k.push(g[e]);k.sort();l.isSelectionEmpty()?f(k):f(k,l.getCommonTagsForCells(l.getSelectionCells()))}});l.selectionModel.addListener(mxEvent.CHANGE,p);l.model.addListener(mxEvent.CHANGE,p);l.addListener(mxEvent.REFRESH,p);var v=document.createElement("div");v.style.boxSizing="border-box";v.style.whiteSpace="nowrap";v.style.position="absolute";v.style.overflow="hidden";v.style.bottom="0px";v.style.height="42px";
+v.style.right="10px";v.style.left="10px";l.isEnabled()&&(v.appendChild(q),v.appendChild(u),m.appendChild(v));return{div:m,refresh:p}};Graph.prototype.getCustomFonts=function(){var b=this.extFonts,b=null!=b?b.slice():[],d;for(d in Graph.customFontElements){var c=Graph.customFontElements[d];b.push({name:c.name,url:c.url})}return b};Graph.prototype.setFont=function(b,d){Graph.addFont(b,d);document.execCommand("fontname",!1,b);if(null!=d){var c=this.cellEditor.textarea.getElementsByTagName("font");d=
+Graph.getFontUrl(b,d);for(var g=0;g<c.length;g++)c[g].getAttribute("face")==b&&c[g].getAttribute("data-font-src")!=d&&c[g].setAttribute("data-font-src",d)}};var z=Graph.prototype.isFastZoomEnabled;Graph.prototype.isFastZoomEnabled=function(){return z.apply(this,arguments)&&(!this.shadowVisible||!mxClient.IS_SF)};Graph.prototype.updateGlobalUrlVariables=function(){this.globalVars=Editor.globalVars;if(null!=urlParams.vars)try{this.globalVars=null!=this.globalVars?mxUtils.clone(this.globalVars):{};var b=
+JSON.parse(decodeURIComponent(urlParams.vars));if(null!=b)for(var d in b)this.globalVars[d]=b[d]}catch(B){null!=window.console&&console.log("Error in vars URL parameter: "+B)}};Graph.prototype.getExportVariables=function(){return null!=this.globalVars?mxUtils.clone(this.globalVars):{}};var D=Graph.prototype.getGlobalVariable;Graph.prototype.getGlobalVariable=function(b){var d=D.apply(this,arguments);null==d&&null!=this.globalVars&&(d=this.globalVars[b]);return d};Graph.prototype.getDefaultStylesheet=
+function(){if(null==this.defaultStylesheet){var b=this.themes["default-style2"];this.defaultStylesheet=(new mxCodec(b.ownerDocument)).decode(b)}return this.defaultStylesheet};Graph.prototype.isViewer=function(){return urlParams.viewer};var N=Graph.prototype.getSvg;Graph.prototype.getSvg=function(b,d,c,g,e,f,l,k,m,n,q,u,p,v){var x=null,t=null,z=null;u||null==this.themes||"darkTheme"!=this.defaultThemeName||(x=this.stylesheet,t=this.shapeForegroundColor,z=this.shapeBackgroundColor,this.shapeForegroundColor=
+"darkTheme"==this.defaultThemeName?"#000000":Editor.lightColor,this.shapeBackgroundColor="darkTheme"==this.defaultThemeName?"#ffffff":Editor.darkColor,this.stylesheet=this.getDefaultStylesheet(),this.refresh());var y=N.apply(this,arguments),C=this.getCustomFonts();if(q&&0<C.length){var M=y.ownerDocument,B=null!=M.createElementNS?M.createElementNS(mxConstants.NS_SVG,"style"):M.createElement("style");null!=M.setAttributeNS?B.setAttributeNS("type","text/css"):B.setAttribute("type","text/css");for(var G=
+"",L="",D=0;D<C.length;D++){var I=C[D].name,F=C[D].url;Graph.isCssFontUrl(F)?G+="@import url("+F+");\n":L+='@font-face {\nfont-family: "'+I+'";\nsrc: url("'+F+'");\n}\n'}B.appendChild(M.createTextNode(G+L));y.getElementsByTagName("defs")[0].appendChild(B)}null!=x&&(this.shapeBackgroundColor=z,this.shapeForegroundColor=t,this.stylesheet=x,this.refresh());return y};var E=Graph.prototype.createSvgImageExport;Graph.prototype.createSvgImageExport=function(){var b=E.apply(this,arguments);if(this.mathEnabled){var d=
b.drawText;b.drawText=function(b,c){if(null!=b.text&&null!=b.text.value&&b.text.checkBounds()&&(mxUtils.isNode(b.text.value)||b.text.dialect==mxConstants.DIALECT_STRICTHTML)){var g=b.text.getContentNode();if(null!=g){g=g.cloneNode(!0);if(g.getElementsByTagNameNS)for(var e=g.getElementsByTagNameNS("http://www.w3.org/1998/Math/MathML","math");0<e.length;)e[0].parentNode.removeChild(e[0]);null!=g.innerHTML&&(e=b.text.value,b.text.value=g.innerHTML,d.apply(this,arguments),b.text.value=e)}}else d.apply(this,
arguments)}}return b};var J=mxGraphView.prototype.validateBackgroundPage;mxGraphView.prototype.validateBackgroundPage=function(){J.apply(this,arguments);if(mxClient.IS_GC&&null!=this.getDrawPane()){var b=this.getDrawPane().parentNode;!this.graph.mathEnabled||mxClient.NO_FO||null!=this.webKitForceRepaintNode&&null!=this.webKitForceRepaintNode.parentNode||"svg"!=this.graph.container.firstChild.nodeName?null==this.webKitForceRepaintNode||this.graph.mathEnabled&&("svg"==this.graph.container.firstChild.nodeName||
this.graph.container.firstChild==this.webKitForceRepaintNode)||(null!=this.webKitForceRepaintNode.parentNode&&this.webKitForceRepaintNode.parentNode.removeChild(this.webKitForceRepaintNode),this.webKitForceRepaintNode=null):(this.webKitForceRepaintNode=document.createElement("div"),this.webKitForceRepaintNode.style.cssText="position:absolute;",b.ownerSVGElement.parentNode.insertBefore(this.webKitForceRepaintNode,b.ownerSVGElement))}};var C=Graph.prototype.refresh;Graph.prototype.refresh=function(){C.apply(this,
arguments);this.refreshBackgroundImage()};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var K=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){K.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(b){"data:action/json,"==b.substring(0,17)&&(b=JSON.parse(b.substring(17)),null!=
b.actions&&this.executeCustomActions(b.actions))};Graph.prototype.executeCustomActions=function(b,d){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var c=!1,g=0,e=0,f=mxUtils.bind(this,function(){c||(c=!0,this.model.beginUpdate())}),l=mxUtils.bind(this,
-function(){c&&(c=!1,this.model.endUpdate())}),m=mxUtils.bind(this,function(){0<g&&g--;0==g&&k()}),k=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,n=b[e++],q=[];if(null!=n.open)if(l(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;m()}),g++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,
-""!=n.wait?parseInt(n.wait):1E3),l());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,m,c?0:n.fadeIn.delay));null!=n.fadeOut&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,m,c?0:n.fadeOut.delay));null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,
+function(){c&&(c=!1,this.model.endUpdate())}),k=mxUtils.bind(this,function(){0<g&&g--;0==g&&m()}),m=mxUtils.bind(this,function(){if(e<b.length){var c=this.stoppingCustomActions,n=b[e++],q=[];if(null!=n.open)if(l(),this.isCustomLink(n.open)){if(!this.customLinkClicked(n.open))return}else this.openLink(n.open);null==n.wait||c||(this.pendingExecuteNextAction=mxUtils.bind(this,function(){this.pendingWaitThread=this.pendingExecuteNextAction=null;k()}),g++,this.pendingWaitThread=window.setTimeout(this.pendingExecuteNextAction,
+""!=n.wait?parseInt(n.wait):1E3),l());null!=n.opacity&&null!=n.opacity.value&&Graph.setOpacityForNodes(this.getNodesForCells(this.getCellsForAction(n.opacity,!0)),n.opacity.value);null!=n.fadeIn&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeIn,!0)),0,1,k,c?0:n.fadeIn.delay));null!=n.fadeOut&&(g++,Graph.fadeNodes(this.getNodesForCells(this.getCellsForAction(n.fadeOut,!0)),1,0,k,c?0:n.fadeOut.delay));null!=n.wipeIn&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeIn,
!0),!0)));null!=n.wipeOut&&(q=q.concat(this.createWipeAnimations(this.getCellsForAction(n.wipeOut,!0),!1)));null!=n.toggle&&(f(),this.toggleCells(this.getCellsForAction(n.toggle,!0)));if(null!=n.show){f();var u=this.getCellsForAction(n.show,!0);Graph.setOpacityForNodes(this.getNodesForCells(u),1);this.setCellsVisible(u,!0)}null!=n.hide&&(f(),u=this.getCellsForAction(n.hide,!0),Graph.setOpacityForNodes(this.getNodesForCells(u),0),this.setCellsVisible(u,!1));null!=n.toggleStyle&&null!=n.toggleStyle.key&&
(f(),this.toggleCellStyles(n.toggleStyle.key,null!=n.toggleStyle.defaultValue?n.toggleStyle.defaultValue:"0",this.getCellsForAction(n.toggleStyle,!0)));null!=n.style&&null!=n.style.key&&(f(),this.setCellStyles(n.style.key,n.style.value,this.getCellsForAction(n.style,!0)));u=[];null!=n.select&&this.isEnabled()&&(u=this.getCellsForAction(n.select),this.setSelectionCells(u));null!=n.highlight&&(u=this.getCellsForAction(n.highlight),this.highlightCells(u,n.highlight.color,n.highlight.duration,n.highlight.opacity));
-null!=n.scroll&&(u=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<u.length&&this.scrollCellToVisible(u[0]);if(null!=n.tags){u=[];null!=n.tags.hidden&&(u=u.concat(n.tags.hidden));if(null!=n.tags.visible)for(var p=this.getAllTags(),v=0;v<p.length;v++)0>mxUtils.indexOf(n.tags.visible,p[v])&&0>mxUtils.indexOf(u,p[v])&&u.push(p[v]);this.hiddenTags=u;this.refresh()}0<q.length&&(g++,this.executeAnimations(q,m,c?1:n.steps,c?0:n.delay));0==g?k():l()}else this.stoppingCustomActions=
-this.executingCustomActions=!1,l(),null!=d&&d()});k()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){var c=this.getLinkForCell(d);null!=c&&"data:action/json,"==c.substring(0,17)&&this.setLinkForCell(d,this.updateCustomLink(b,c));if(this.isHtmlLabel(d)){var g=document.createElement("div");g.innerHTML=this.sanitizeHtml(this.getLabel(d));for(var e=g.getElementsByTagName("a"),f=!1,l=0;l<e.length;l++)c=e[l].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(e[l].setAttribute("href",
+null!=n.scroll&&(u=this.getCellsForAction(n.scroll));null!=n.viewbox&&this.fitWindow(n.viewbox,n.viewbox.border);0<u.length&&this.scrollCellToVisible(u[0]);if(null!=n.tags){u=[];null!=n.tags.hidden&&(u=u.concat(n.tags.hidden));if(null!=n.tags.visible)for(var p=this.getAllTags(),v=0;v<p.length;v++)0>mxUtils.indexOf(n.tags.visible,p[v])&&0>mxUtils.indexOf(u,p[v])&&u.push(p[v]);this.hiddenTags=u;this.refresh()}0<q.length&&(g++,this.executeAnimations(q,k,c?1:n.steps,c?0:n.delay));0==g?m():l()}else this.stoppingCustomActions=
+this.executingCustomActions=!1,l(),null!=d&&d()});m()}};Graph.prototype.doUpdateCustomLinksForCell=function(b,d){var c=this.getLinkForCell(d);null!=c&&"data:action/json,"==c.substring(0,17)&&this.setLinkForCell(d,this.updateCustomLink(b,c));if(this.isHtmlLabel(d)){var g=document.createElement("div");g.innerHTML=this.sanitizeHtml(this.getLabel(d));for(var e=g.getElementsByTagName("a"),f=!1,l=0;l<e.length;l++)c=e[l].getAttribute("href"),null!=c&&"data:action/json,"==c.substring(0,17)&&(e[l].setAttribute("href",
this.updateCustomLink(b,c)),f=!0);f&&this.labelChanged(d,g.innerHTML)}};Graph.prototype.updateCustomLink=function(b,d){if("data:action/json,"==d.substring(0,17))try{var c=JSON.parse(d.substring(17));null!=c.actions&&(this.updateCustomLinkActions(b,c.actions),d="data:action/json,"+JSON.stringify(c))}catch(ca){}return d};Graph.prototype.updateCustomLinkActions=function(b,d){for(var c=0;c<d.length;c++){var g=d[c],e;for(e in g)this.updateCustomLinkAction(b,g[e],"cells"),this.updateCustomLinkAction(b,
g[e],"excludeCells")}};Graph.prototype.updateCustomLinkAction=function(b,d,c){if(null!=d&&null!=d[c]){for(var g=[],e=0;e<d[c].length;e++)if("*"==d[c][e])g.push(d[c][e]);else{var f=b[d[c][e]];null!=f?""!=f&&g.push(f):g.push(d[c][e])}d[c]=g}};Graph.prototype.getCellsForAction=function(b,d){var c=this.getCellsById(b.cells).concat(this.getCellsForTags(b.tags,null,d));if(null!=b.excludeCells){for(var g=[],e=0;e<c.length;e++)0>b.excludeCells.indexOf(c[e].id)&&g.push(c[e]);c=g}return c};Graph.prototype.getCellsById=
-function(b){var d=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var g=this.model.getRoot(),d=d.concat(this.model.filterDescendants(function(b){return b!=g},g));else{var e=this.model.getCell(b[c]);null!=e&&d.push(e)}return d};var M=Graph.prototype.isCellVisible;Graph.prototype.isCellVisible=function(b){return M.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};Graph.prototype.isAllTagsHidden=function(b){if(null==b||0==b.length||0==this.hiddenTags.length)return!1;b=b.split(" ");
-if(b.length>this.hiddenTags.length)return!1;for(var d=0;d<b.length;d++)if(0>mxUtils.indexOf(this.hiddenTags,b[d]))return!1;return!0};Graph.prototype.getCellsForTags=function(b,d,c,g){var e=[];if(null!=b){d=null!=d?d:this.model.getDescendants(this.model.getRoot());for(var f=0,l={},m=0;m<b.length;m++)0<b[m].length&&(l[b[m]]=!0,f++);for(m=0;m<d.length;m++)if(c&&this.model.getParent(d[m])==this.model.root||this.model.isVertex(d[m])||this.model.isEdge(d[m])){var k=this.getTagsForCell(d[m]),n=!1;if(0<k.length&&
-(k=k.split(" "),k.length>=b.length)){for(var q=n=0;q<k.length&&n<f;q++)null!=l[k[q]]&&n++;n=n==f}n&&(1!=g||this.isCellVisible(d[m]))&&e.push(d[m])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};Graph.prototype.getCommonTagsForCells=function(b){for(var d=null,c=[],g=0;g<b.length;g++){var e=this.getTagsForCell(b[g]),c=[];if(0<e.length){for(var e=e.split(" "),f={},l=0;l<e.length;l++)if(null==d||null!=d[e[l]])f[e[l]]=!0,c.push(e[l]);
+function(b){var d=[];if(null!=b)for(var c=0;c<b.length;c++)if("*"==b[c])var g=this.model.getRoot(),d=d.concat(this.model.filterDescendants(function(b){return b!=g},g));else{var e=this.model.getCell(b[c]);null!=e&&d.push(e)}return d};var L=Graph.prototype.isCellVisible;Graph.prototype.isCellVisible=function(b){return L.apply(this,arguments)&&!this.isAllTagsHidden(this.getTagsForCell(b))};Graph.prototype.isAllTagsHidden=function(b){if(null==b||0==b.length||0==this.hiddenTags.length)return!1;b=b.split(" ");
+if(b.length>this.hiddenTags.length)return!1;for(var d=0;d<b.length;d++)if(0>mxUtils.indexOf(this.hiddenTags,b[d]))return!1;return!0};Graph.prototype.getCellsForTags=function(b,d,c,g){var e=[];if(null!=b){d=null!=d?d:this.model.getDescendants(this.model.getRoot());for(var f=0,l={},k=0;k<b.length;k++)0<b[k].length&&(l[b[k]]=!0,f++);for(k=0;k<d.length;k++)if(c&&this.model.getParent(d[k])==this.model.root||this.model.isVertex(d[k])||this.model.isEdge(d[k])){var m=this.getTagsForCell(d[k]),n=!1;if(0<m.length&&
+(m=m.split(" "),m.length>=b.length)){for(var q=n=0;q<m.length&&n<f;q++)null!=l[m[q]]&&n++;n=n==f}n&&(1!=g||this.isCellVisible(d[k]))&&e.push(d[k])}}return e};Graph.prototype.getAllTags=function(){return this.getTagsForCells(this.model.getDescendants(this.model.getRoot()))};Graph.prototype.getCommonTagsForCells=function(b){for(var d=null,c=[],g=0;g<b.length;g++){var e=this.getTagsForCell(b[g]),c=[];if(0<e.length){for(var e=e.split(" "),f={},l=0;l<e.length;l++)if(null==d||null!=d[e[l]])f[e[l]]=!0,c.push(e[l]);
d=f}else return[]}return c};Graph.prototype.getTagsForCells=function(b){for(var d=[],c={},g=0;g<b.length;g++){var e=this.getTagsForCell(b[g]);if(0<e.length)for(var e=e.split(" "),f=0;f<e.length;f++)null==c[e[f]]&&(c[e[f]]=!0,d.push(e[f]))}return d};Graph.prototype.getTagsForCell=function(b){return this.getAttributeForCell(b,"tags","")};Graph.prototype.addTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){for(var g=this.getTagsForCell(b[c]),
-e=g.split(" "),f=!1,l=0;l<d.length;l++){var m=mxUtils.trim(d[l]);""!=m&&0>mxUtils.indexOf(e,m)&&(g=0<g.length?g+" "+m:m,f=!0)}f&&this.setAttributeForCell(b[c],"tags",g)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var g=this.getTagsForCell(b[c]);if(0<g.length){for(var e=g.split(" "),f=!1,l=0;l<d.length;l++){var m=mxUtils.indexOf(e,d[l]);0<=m&&(e.splice(m,1),f=!0)}f&&this.setAttributeForCell(b[c],
+e=g.split(" "),f=!1,l=0;l<d.length;l++){var k=mxUtils.trim(d[l]);""!=k&&0>mxUtils.indexOf(e,k)&&(g=0<g.length?g+" "+k:k,f=!0)}f&&this.setAttributeForCell(b[c],"tags",g)}}finally{this.model.endUpdate()}}};Graph.prototype.removeTagsForCells=function(b,d){if(0<b.length&&0<d.length){this.model.beginUpdate();try{for(var c=0;c<b.length;c++){var g=this.getTagsForCell(b[c]);if(0<g.length){for(var e=g.split(" "),f=!1,l=0;l<d.length;l++){var k=mxUtils.indexOf(e,d[l]);0<=k&&(e.splice(k,1),f=!0)}f&&this.setAttributeForCell(b[c],
"tags",e.join(" "))}}}finally{this.model.endUpdate()}}};Graph.prototype.toggleCells=function(b){this.model.beginUpdate();try{for(var d=0;d<b.length;d++)this.model.setVisible(b[d],!this.model.isVisible(b[d]))}finally{this.model.endUpdate()}};Graph.prototype.setCellsVisible=function(b,d){this.model.beginUpdate();try{for(var c=0;c<b.length;c++)this.model.setVisible(b[c],d)}finally{this.model.endUpdate()}};Graph.prototype.highlightCells=function(b,d,c,g){for(var e=0;e<b.length;e++)this.highlightCell(b[e],
d,c,g)};Graph.prototype.highlightCell=function(b,d,c,g){d=null!=d?d:mxConstants.DEFAULT_VALID_COLOR;c=null!=c?c:1E3;b=this.view.getState(b);if(null!=b){var e=Math.max(5,mxUtils.getValue(b.style,mxConstants.STYLE_STROKEWIDTH,1)+4),f=new mxCellHighlight(this,d,e,!1);null!=g&&(f.opacity=g);f.highlight(b);window.setTimeout(function(){null!=f.shape&&(mxUtils.setPrefixedStyle(f.shape.node.style,"transition","all 1200ms ease-in-out"),f.shape.node.style.opacity=0);window.setTimeout(function(){f.destroy()},
1200)},c)}};Graph.prototype.addSvgShadow=function(b,d,c,g){c=null!=c?c:!1;g=null!=g?g:!0;var e=b.ownerDocument,f=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"filter"):e.createElement("filter");f.setAttribute("id",this.shadowId);var l=null!=e.createElementNS?e.createElementNS(mxConstants.NS_SVG,"feGaussianBlur"):e.createElement("feGaussianBlur");l.setAttribute("in","SourceAlpha");l.setAttribute("stdDeviation",this.svgShadowBlur);l.setAttribute("result","blur");f.appendChild(l);l=null!=
@@ -3348,37 +3352,37 @@ mxStencilRegistry.libraries["mockup/misc"]=[SHAPES_PATH+"/mockup/mxMockupMisc.js
"/mxBasic.js",STENCIL_PATH+"/bootstrap.xml"];mxStencilRegistry.libraries.gmdl=[SHAPES_PATH+"/mxGmdl.js",STENCIL_PATH+"/gmdl.xml"];mxStencilRegistry.libraries.gcp2=[SHAPES_PATH+"/mxGCP2.js",STENCIL_PATH+"/gcp2.xml"];mxStencilRegistry.libraries.ibm=[SHAPES_PATH+"/mxIBM.js",STENCIL_PATH+"/ibm.xml"];mxStencilRegistry.libraries.cabinets=[SHAPES_PATH+"/mxCabinets.js",STENCIL_PATH+"/cabinets.xml"];mxStencilRegistry.libraries.archimate=[SHAPES_PATH+"/mxArchiMate.js"];mxStencilRegistry.libraries.archimate3=
[SHAPES_PATH+"/mxArchiMate3.js"];mxStencilRegistry.libraries.sysml=[SHAPES_PATH+"/mxSysML.js"];mxStencilRegistry.libraries.eip=[SHAPES_PATH+"/mxEip.js",STENCIL_PATH+"/eip.xml"];mxStencilRegistry.libraries.networks=[SHAPES_PATH+"/mxNetworks.js",STENCIL_PATH+"/networks.xml"];mxStencilRegistry.libraries.aws3d=[SHAPES_PATH+"/mxAWS3D.js",STENCIL_PATH+"/aws3d.xml"];mxStencilRegistry.libraries.aws4=[SHAPES_PATH+"/mxAWS4.js",STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.aws4b=[SHAPES_PATH+"/mxAWS4.js",
STENCIL_PATH+"/aws4.xml"];mxStencilRegistry.libraries.uml25=[SHAPES_PATH+"/mxUML25.js"];mxStencilRegistry.libraries.veeam=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam.xml"];mxStencilRegistry.libraries.veeam2=[STENCIL_PATH+"/veeam/2d.xml",STENCIL_PATH+"/veeam/3d.xml",STENCIL_PATH+"/veeam/veeam2.xml"];mxStencilRegistry.libraries.pid2inst=[SHAPES_PATH+"/pid2/mxPidInstruments.js"];mxStencilRegistry.libraries.pid2misc=[SHAPES_PATH+"/pid2/mxPidMisc.js",STENCIL_PATH+
-"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var Z=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,f,l,m,k,n){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&
-mxStencilRegistry.getStencil(q)}return Z.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(m,Math.max(parseInt(v.value),parseInt(p.value))));p.value=Math.max(1,Math.min(m,Math.min(parseInt(v.value),parseInt(p.value))))}function g(d){function c(d,c,f){var l=d.useCssTransforms,m=d.currentTranslate,k=d.currentScale,n=d.view.translate,q=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,
-d.view.translate=new mxPoint(0,0),d.view.scale=1);var u=d.getGraphBounds(),p=0,v=0,x=E.get(),t=1/d.pageScale,C=y.checked;if(C)var t=parseInt(O.value),L=parseInt(I.value),t=Math.min(x.height*L/(u.height/d.view.scale),x.width*t/(u.width/d.view.scale));else t=parseInt(z.value)/(100*d.pageScale),isNaN(t)&&(g=1/d.pageScale,z.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*g);x.height=Math.ceil(x.height*g);t*=g;!C&&d.pageVisible?(u=d.getPageLayout(),p-=u.x*x.width,v-=u.y*x.height):
-C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,p,v,C);c.pageSelector=!1;c.mathEnabled=!1;p=b.getCurrentFile();null!=p&&(c.title=p.getTitle());var D=c.writeHead;c.writeHead=function(c){D.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),c.writeln("@media print {"),c.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),c.writeln("}"),
+"/pid/misc.xml"];mxStencilRegistry.libraries.pid2valves=[SHAPES_PATH+"/pid2/mxPidValves.js"];mxStencilRegistry.libraries.pidFlowSensors=[STENCIL_PATH+"/pid/flow_sensors.xml"];mxMarker.getPackageForType=function(b){var d=null;null!=b&&0<b.length&&("ER"==b.substring(0,2)?d="mxgraph.er":"sysML"==b.substring(0,5)&&(d="mxgraph.sysml"));return d};var Z=mxMarker.createMarker;mxMarker.createMarker=function(b,d,c,g,e,f,l,k,m,n){if(null!=c&&null==mxMarker.markers[c]){var q=this.getPackageForType(c);null!=q&&
+mxStencilRegistry.getStencil(q)}return Z.apply(this,arguments)};PrintDialog.prototype.create=function(b,d){function c(){v.value=Math.max(1,Math.min(k,Math.max(parseInt(v.value),parseInt(p.value))));p.value=Math.max(1,Math.min(k,Math.min(parseInt(v.value),parseInt(p.value))))}function g(d){function c(d,c,f){var l=d.useCssTransforms,k=d.currentTranslate,m=d.currentScale,n=d.view.translate,q=d.view.scale;d.useCssTransforms&&(d.useCssTransforms=!1,d.currentTranslate=new mxPoint(0,0),d.currentScale=1,
+d.view.translate=new mxPoint(0,0),d.view.scale=1);var u=d.getGraphBounds(),p=0,v=0,x=E.get(),t=1/d.pageScale,C=y.checked;if(C)var t=parseInt(K.value),M=parseInt(I.value),t=Math.min(x.height*M/(u.height/d.view.scale),x.width*t/(u.width/d.view.scale));else t=parseInt(z.value)/(100*d.pageScale),isNaN(t)&&(g=1/d.pageScale,z.value="100 %");x=mxRectangle.fromRectangle(x);x.width=Math.ceil(x.width*g);x.height=Math.ceil(x.height*g);t*=g;!C&&d.pageVisible?(u=d.getPageLayout(),p-=u.x*x.width,v-=u.y*x.height):
+C=!0;if(null==c){c=PrintDialog.createPrintPreview(d,t,x,0,p,v,C);c.pageSelector=!1;c.mathEnabled=!1;p=b.getCurrentFile();null!=p&&(c.title=p.getTitle());var L=c.writeHead;c.writeHead=function(c){L.apply(this,arguments);if(mxClient.IS_GC||mxClient.IS_SF)c.writeln('<style type="text/css">'),c.writeln(Editor.mathJaxWebkitCss),c.writeln("</style>");mxClient.IS_GC&&(c.writeln('<style type="text/css">'),c.writeln("@media print {"),c.writeln("span.MathJax_SVG svg { shape-rendering: crispEdges; }"),c.writeln("}"),
c.writeln("</style>"));null!=b.editor.fontCss&&(c.writeln('<style type="text/css">'),c.writeln(b.editor.fontCss),c.writeln("</style>"));for(var g=d.getCustomFonts(),e=0;e<g.length;e++){var f=g[e].name,l=g[e].url;Graph.isCssFontUrl(l)?c.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(l)+'" charset="UTF-8" type="text/css">'):(c.writeln('<style type="text/css">'),c.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(f)+'";\nsrc: url("'+mxUtils.htmlEntities(l)+'");\n}'),c.writeln("</style>"))}};
-if("undefined"!==typeof MathJax){var M=c.renderPage;c.renderPage=function(d,c,g,e,f,l){var m=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var k=M.apply(this,arguments);mxClient.NO_FO=m;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:k.className="geDisableMathJax";return k}}p=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(p=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
+if("undefined"!==typeof MathJax){var D=c.renderPage;c.renderPage=function(d,c,g,e,f,l){var k=mxClient.NO_FO;mxClient.NO_FO=this.graph.mathEnabled&&!b.editor.useForeignObjectForMath?!0:b.editor.originalNoForeignObject;var m=D.apply(this,arguments);mxClient.NO_FO=k;this.graph.mathEnabled?this.mathEnabled=this.mathEnabled||!0:m.className="geDisableMathJax";return m}}p=null;v=e.enableFlowAnimation;e.enableFlowAnimation=!1;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(p=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),
e.refresh());c.open(null,null,f,!0);e.enableFlowAnimation=v;null!=p&&(e.stylesheet=p,e.refresh())}else{x=d.background;if(null==x||""==x||x==mxConstants.NONE)x="#ffffff";c.backgroundColor=x;c.autoOrigin=C;c.appendGraph(d,t,p,v,f,!0);f=d.getCustomFonts();if(null!=c.wnd)for(p=0;p<f.length;p++)v=f[p].name,C=f[p].url,Graph.isCssFontUrl(C)?c.wnd.document.writeln('<link rel="stylesheet" href="'+mxUtils.htmlEntities(C)+'" charset="UTF-8" type="text/css">'):(c.wnd.document.writeln('<style type="text/css">'),
-c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(C)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=m,d.currentScale=k,d.view.translate=n,d.view.scale=q);return c}var g=parseInt(N.value)/100;isNaN(g)&&(g=1,N.value="100 %");var g=.75*g,f=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(f=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=p.value,m=v.value,n=!q.checked,
-u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,m,y.checked,O.value,I.value,parseInt(z.value)/100,parseInt(N.value)/100,E.get());else{n&&(n=l==k&&m==k);if(!n&&null!=b.pages&&b.pages.length){var x=0,n=b.pages.length-1;q.checked||(x=parseInt(l)-1,n=parseInt(m)-1);for(var t=x;t<=n;t++){var C=b.pages[t],l=C==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),m=!0,x=!1,L=null,D=null;null==C.viewState&&null==C.root&&b.updatePageRoot(C);null!=C.viewState&&
-(m=C.viewState.pageVisible,x=C.viewState.mathEnabled,L=C.viewState.background,D=C.viewState.backgroundImage,l.extFonts=C.viewState.extFonts);l.background=L;l.backgroundImage=null!=D?new mxImage(D.src,D.width,D.height):null;l.pageVisible=m;l.mathEnabled=x;var M=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?C.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:M.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(C);l.model.setRoot(C.root)}u=
+c.wnd.document.writeln('@font-face {\nfont-family: "'+mxUtils.htmlEntities(v)+'";\nsrc: url("'+mxUtils.htmlEntities(C)+'");\n}'),c.wnd.document.writeln("</style>"))}l&&(d.useCssTransforms=l,d.currentTranslate=k,d.currentScale=m,d.view.translate=n,d.view.scale=q);return c}var g=parseInt(N.value)/100;isNaN(g)&&(g=1,N.value="100 %");var g=.75*g,f=null;null!=e.themes&&"darkTheme"==e.defaultThemeName&&(f=e.stylesheet,e.stylesheet=e.getDefaultStylesheet(),e.refresh());var l=p.value,k=v.value,n=!q.checked,
+u=null;if(EditorUi.isElectronApp)PrintDialog.electronPrint(b,q.checked,l,k,y.checked,K.value,I.value,parseInt(z.value)/100,parseInt(N.value)/100,E.get());else{n&&(n=l==m&&k==m);if(!n&&null!=b.pages&&b.pages.length){var x=0,n=b.pages.length-1;q.checked||(x=parseInt(l)-1,n=parseInt(k)-1);for(var t=x;t<=n;t++){var C=b.pages[t],l=C==b.currentPage?e:null;if(null==l){var l=b.createTemporaryGraph(e.stylesheet),k=!0,x=!1,M=null,L=null;null==C.viewState&&null==C.root&&b.updatePageRoot(C);null!=C.viewState&&
+(k=C.viewState.pageVisible,x=C.viewState.mathEnabled,M=C.viewState.background,L=C.viewState.backgroundImage,l.extFonts=C.viewState.extFonts);l.background=M;l.backgroundImage=null!=L?new mxImage(L.src,L.width,L.height):null;l.pageVisible=k;l.mathEnabled=x;var D=l.getGlobalVariable;l.getGlobalVariable=function(d){return"page"==d?C.getName():"pagenumber"==d?t+1:"pagecount"==d?null!=b.pages?b.pages.length:1:D.apply(this,arguments)};document.body.appendChild(l.container);b.updatePageRoot(C);l.model.setRoot(C.root)}u=
c(l,u,t!=n);l!=e&&l.container.parentNode.removeChild(l.container)}}else u=c(e);null==u?b.handleError({message:mxResources.get("errorUpdatingPreview")}):(u.mathEnabled&&(n=u.wnd.document,d&&(u.wnd.IMMEDIATE_PRINT=!0),n.writeln('<script type="text/javascript" src="'+DRAWIO_BASE_URL+'/js/math-print.js">\x3c/script>')),u.closeDocument(),!u.mathEnabled&&d&&PrintDialog.printPreview(u));null!=f&&(e.stylesheet=f,e.refresh())}}var e=b.editor.graph,f=document.createElement("div"),l=document.createElement("h3");
-l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,d||mxResources.get("print"));f.appendChild(l);var m=1,k=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");n.appendChild(q);l=document.createElement("span");
+l.style.width="100%";l.style.textAlign="center";l.style.marginTop="0px";mxUtils.write(l,d||mxResources.get("print"));f.appendChild(l);var k=1,m=1,n=document.createElement("div");n.style.cssText="border-bottom:1px solid lightGray;padding-bottom:12px;margin-bottom:12px;";var q=document.createElement("input");q.style.cssText="margin-right:8px;margin-bottom:8px;";q.setAttribute("value","all");q.setAttribute("type","radio");q.setAttribute("name","pages-printdialog");n.appendChild(q);l=document.createElement("span");
mxUtils.write(l,mxResources.get("printAllPages"));n.appendChild(l);mxUtils.br(n);var u=q.cloneNode(!0);q.setAttribute("checked","checked");u.setAttribute("value","range");n.appendChild(u);l=document.createElement("span");mxUtils.write(l,mxResources.get("pages")+":");n.appendChild(l);var p=document.createElement("input");p.style.cssText="margin:0 8px 0 8px;";p.setAttribute("value","1");p.setAttribute("type","number");p.setAttribute("min","1");p.style.width="50px";n.appendChild(p);l=document.createElement("span");
-mxUtils.write(l,mxResources.get("to"));n.appendChild(l);var v=p.cloneNode(!0);n.appendChild(v);mxEvent.addListener(p,"focus",function(){u.checked=!0});mxEvent.addListener(v,"focus",function(){u.checked=!0});mxEvent.addListener(p,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(m=b.pages.length,null!=b.currentPage))for(l=0;l<b.pages.length;l++)if(b.currentPage==b.pages[l]){k=l+1;p.value=k;v.value=k;break}p.setAttribute("max",m);v.setAttribute("max",m);b.isPagesEnabled()?1<m&&(f.appendChild(n),
+mxUtils.write(l,mxResources.get("to"));n.appendChild(l);var v=p.cloneNode(!0);n.appendChild(v);mxEvent.addListener(p,"focus",function(){u.checked=!0});mxEvent.addListener(v,"focus",function(){u.checked=!0});mxEvent.addListener(p,"change",c);mxEvent.addListener(v,"change",c);if(null!=b.pages&&(k=b.pages.length,null!=b.currentPage))for(l=0;l<b.pages.length;l++)if(b.currentPage==b.pages[l]){m=l+1;p.value=m;v.value=m;break}p.setAttribute("max",k);v.setAttribute("max",k);b.isPagesEnabled()?1<k&&(f.appendChild(n),
u.checked=!0):u.checked=!0;var x=document.createElement("div");x.style.marginBottom="10px";var t=document.createElement("input");t.style.marginRight="8px";t.setAttribute("value","adjust");t.setAttribute("type","radio");t.setAttribute("name","printZoom");x.appendChild(t);l=document.createElement("span");mxUtils.write(l,mxResources.get("adjustTo"));x.appendChild(l);var z=document.createElement("input");z.style.cssText="margin:0 8px 0 8px;";z.setAttribute("value","100 %");z.style.width="50px";x.appendChild(z);
-mxEvent.addListener(z,"focus",function(){t.checked=!0});f.appendChild(x);var n=n.cloneNode(!1),y=t.cloneNode(!0);y.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(y);n.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),L=document.createElement("tr"),D=L.cloneNode(!0),M=document.createElement("td"),
-F=M.cloneNode(!0),G=M.cloneNode(!0),K=M.cloneNode(!0),H=M.cloneNode(!0),J=M.cloneNode(!0);M.style.textAlign="right";K.style.textAlign="right";mxUtils.write(M,mxResources.get("fitTo"));var O=document.createElement("input");O.style.cssText="margin:0 8px 0 8px;";O.setAttribute("value","1");O.setAttribute("min","1");O.setAttribute("type","number");O.style.width="40px";F.appendChild(O);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));G.appendChild(l);mxUtils.write(K,
-mxResources.get("fitToBy"));var I=O.cloneNode(!0);H.appendChild(I);mxEvent.addListener(O,"focus",function(){y.checked=!0});mxEvent.addListener(I,"focus",function(){y.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));J.appendChild(l);L.appendChild(M);L.appendChild(F);L.appendChild(G);D.appendChild(K);D.appendChild(H);D.appendChild(J);C.appendChild(L);C.appendChild(D);x.appendChild(C);n.appendChild(x);f.appendChild(n);n=document.createElement("div");l=
+mxEvent.addListener(z,"focus",function(){t.checked=!0});f.appendChild(x);var n=n.cloneNode(!1),y=t.cloneNode(!0);y.setAttribute("value","fit");t.setAttribute("checked","checked");l=document.createElement("div");l.style.cssText="display:inline-block;height:100%;vertical-align:top;padding-top:2px;";l.appendChild(y);n.appendChild(l);x=document.createElement("table");x.style.display="inline-block";var C=document.createElement("tbody"),M=document.createElement("tr"),D=M.cloneNode(!0),L=document.createElement("td"),
+F=L.cloneNode(!0),H=L.cloneNode(!0),G=L.cloneNode(!0),P=L.cloneNode(!0),J=L.cloneNode(!0);L.style.textAlign="right";G.style.textAlign="right";mxUtils.write(L,mxResources.get("fitTo"));var K=document.createElement("input");K.style.cssText="margin:0 8px 0 8px;";K.setAttribute("value","1");K.setAttribute("min","1");K.setAttribute("type","number");K.style.width="40px";F.appendChild(K);l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsAcross"));H.appendChild(l);mxUtils.write(G,
+mxResources.get("fitToBy"));var I=K.cloneNode(!0);P.appendChild(I);mxEvent.addListener(K,"focus",function(){y.checked=!0});mxEvent.addListener(I,"focus",function(){y.checked=!0});l=document.createElement("span");mxUtils.write(l,mxResources.get("fitToSheetsDown"));J.appendChild(l);M.appendChild(L);M.appendChild(F);M.appendChild(H);D.appendChild(G);D.appendChild(P);D.appendChild(J);C.appendChild(M);C.appendChild(D);x.appendChild(C);n.appendChild(x);f.appendChild(n);n=document.createElement("div");l=
document.createElement("div");l.style.fontWeight="bold";l.style.marginBottom="12px";mxUtils.write(l,mxResources.get("paperSize"));n.appendChild(l);l=document.createElement("div");l.style.marginBottom="12px";var E=PageSetupDialog.addPageFormatPanel(l,"printdialog",b.editor.graph.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT);n.appendChild(l);l=document.createElement("span");mxUtils.write(l,mxResources.get("pageScale"));n.appendChild(l);var N=document.createElement("input");N.style.cssText="margin:0 8px 0 8px;";
N.setAttribute("value","100 %");N.style.width="60px";n.appendChild(N);f.appendChild(n);l=document.createElement("div");l.style.cssText="text-align:right;margin:48px 0 0 0;";n=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});n.className="geBtn";b.editor.cancelFirst&&l.appendChild(n);b.isOffline()||(x=mxUtils.button(mxResources.get("help"),function(){e.openLink("https://www.diagrams.net/doc/faq/print-diagram")}),x.className="geBtn",l.appendChild(x));PrintDialog.previewEnabled&&(x=
-mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();g(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();g(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(n);f.appendChild(l);this.container=f};var L=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
-this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}null!=this.format&&(this.page.viewState.pageFormat=this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else L.apply(this,arguments),null!=this.mathEnabled&&
-this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var O=document.createElement("canvas"),U=new Image;U.onload=function(){try{O.getContext("2d").drawImage(U,0,0);var b=O.toDataURL("image/png");Editor.prototype.useCanvasForExport=
+mxUtils.button(mxResources.get("preview"),function(){b.hideDialog();g(!1)}),x.className="geBtn",l.appendChild(x));x=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){b.hideDialog();g(!0)});x.className="geBtn gePrimaryBtn";l.appendChild(x);b.editor.cancelFirst||l.appendChild(n);f.appendChild(l);this.container=f};var M=ChangePageSetup.prototype.execute;ChangePageSetup.prototype.execute=function(){null==this.page&&(this.page=this.ui.currentPage);if(this.page!=this.ui.currentPage){if(null!=
+this.page.viewState){this.ignoreColor||(this.page.viewState.background=this.color);if(!this.ignoreImage){var b=this.image;null!=b&&null!=b.src&&Graph.isPageLink(b.src)&&(b={originalSrc:b.src});this.page.viewState.backgroundImage=b}null!=this.format&&(this.page.viewState.pageFormat=this.format);null!=this.mathEnabled&&(this.page.viewState.mathEnabled=this.mathEnabled);null!=this.shadowVisible&&(this.page.viewState.shadowVisible=this.shadowVisible)}}else M.apply(this,arguments),null!=this.mathEnabled&&
+this.mathEnabled!=this.ui.isMathEnabled()&&(this.ui.setMathEnabled(this.mathEnabled),this.mathEnabled=!this.mathEnabled),null!=this.shadowVisible&&this.shadowVisible!=this.ui.editor.graph.shadowVisible&&(this.ui.editor.graph.setShadowVisible(this.shadowVisible),this.shadowVisible=!this.shadowVisible)};Editor.prototype.useCanvasForExport=!1;try{var P=document.createElement("canvas"),U=new Image;U.onload=function(){try{P.getContext("2d").drawImage(U,0,0);var b=P.toDataURL("image/png");Editor.prototype.useCanvasForExport=
null!=b&&6<b.length}catch(I){}};U.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(G){}})();
(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};b.afterDecode=function(b,e,k){k.previousColor=k.color;k.previousImage=k.image;k.previousFormat=k.format;null!=k.foldingEnabled&&(k.foldingEnabled=!k.foldingEnabled);null!=k.mathEnabled&&(k.mathEnabled=!k.mathEnabled);null!=k.shadowVisible&&(k.shadowVisible=!k.shadowVisible);return k};mxCodecRegistry.register(b)})();
-(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="16.0.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=
+(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(b,e,k){k.ui=b.ui;return e};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="16.0.3";EditorUi.compactUi="atlas"!=uiTheme;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=
null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl="1"==urlParams.dev?"/cache":window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=
!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.diagrams.net/doc/faq/scratchpad";EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,
-messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(b,c,e,f,m,k,u){k=null!=k?k:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
-"1"!=urlParams.dev)try{if(b!=EditorUi.lastErrorMessage&&(null==b||null==c||-1==b.indexOf("Script error")&&-1==b.indexOf("extension"))&&null!=b&&0>b.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=b;var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";m=null!=m?m:Error(b);(new Image).src=d+"/log?severity="+k+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(b)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(e)+(null!=f?":colno:"+
-encodeURIComponent(f):"")+(null!=m&&null!=m.stack?"&stack="+encodeURIComponent(m.stack):"")}}catch(y){}try{u||null==window.console||console.error(k,b,c,e,f,m)}catch(y){}};EditorUi.logEvent=function(b){if("1"==urlParams.dev)EditorUi.debug("logEvent",b);else if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):"")}catch(l){}};EditorUi.sendReport=
+messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}};EditorUi.logError=function(b,c,e,f,k,n,u){n=null!=n?n:0<=b.indexOf("NetworkError")||0<=b.indexOf("SecurityError")||0<=b.indexOf("NS_ERROR_FAILURE")||0<=b.indexOf("out of memory")?"CONFIG":"SEVERE";if(EditorUi.enableLogging&&
+"1"!=urlParams.dev)try{if(b!=EditorUi.lastErrorMessage&&(null==b||null==c||-1==b.indexOf("Script error")&&-1==b.indexOf("extension"))&&null!=b&&0>b.indexOf("DocumentClosedError")){EditorUi.lastErrorMessage=b;var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";k=null!=k?k:Error(b);(new Image).src=d+"/log?severity="+n+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(b)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(e)+(null!=f?":colno:"+
+encodeURIComponent(f):"")+(null!=k&&null!=k.stack?"&stack="+encodeURIComponent(k.stack):"")}}catch(y){}try{u||null==window.console||console.error(n,b,c,e,f,k)}catch(y){}};EditorUi.logEvent=function(b){if("1"==urlParams.dev)EditorUi.debug("logEvent",b);else if(EditorUi.enableLogging)try{var d=null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"";(new Image).src=d+"/images/1x1.png?v="+encodeURIComponent(EditorUi.VERSION)+(null!=b?"&data="+encodeURIComponent(JSON.stringify(b)):"")}catch(l){}};EditorUi.sendReport=
function(b,c){if("1"==urlParams.dev)EditorUi.debug("sendReport",b);else if(EditorUi.enableLogging)try{c=null!=c?c:5E4,b.length>c&&(b=b.substring(0,c)+"\n...[SHORTENED]"),mxUtils.post("/email","version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&data="+encodeURIComponent(b))}catch(l){}};EditorUi.debug=function(){try{if(null!=window.console&&"1"==urlParams.test){for(var b=[(new Date).toISOString()],c=0;c<arguments.length;c++)null!=arguments[c]&&b.push(arguments[c]);
console.log.apply(console,b)}}catch(l){}};EditorUi.removeChildNodes=function(b){for(;null!=b.firstChild;)b.removeChild(b.firstChild)};EditorUi.prototype.emptyDiagramXml='<mxGraphModel><root><mxCell id="0"/><mxCell id="1" parent="0"/></root></mxGraphModel>';EditorUi.prototype.emptyLibraryXml="<mxlibrary>[]</mxlibrary>";EditorUi.prototype.mode=null;EditorUi.prototype.timeout=Editor.prototype.timeout;EditorUi.prototype.sidebarFooterHeight=38;EditorUi.prototype.defaultCustomShapeStyle="shape=stencil(tZRtTsQgEEBPw1+DJR7AoN6DbWftpAgE0Ortd/jYRGq72R+YNE2YgTePloEJGWblgA18ZuKFDcMj5/Sm8boZq+BgjCX4pTyqk6ZlKROitwusOMXKQDODx5iy4pXxZ5qTHiFHawxB0JrQZH7lCabQ0Fr+XWC1/E8zcsT/gAi+Subo2/3Mh6d/oJb5nU1b5tW7r2knautaa3T+U32o7f7vZwpJkaNDLORJjcu7t59m2jXxqX9un+tt022acsfmoKaQZ+vhhswZtS6Ne/ThQGt0IV0N3Yyv6P3CeT9/tHO0XFI5cAE=);whiteSpace=wrap;html=1;";
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=
@@ -3386,20 +3390,20 @@ EditorUi.prototype.maxBackgroundSize=1600;EditorUi.prototype.maxImageSize=520;Ed
e.src="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1px" height="1px" version="1.1"><foreignObject pointer-events="all" width="1" height="1"><div xmlns="http://www.w3.org/1999/xhtml"></div></foreignObject></svg>')))}catch(m){}try{c=document.createElement("canvas");c.width=c.height=1;var f=c.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==f.match("image/jpeg")}catch(m){}})();EditorUi.prototype.openLink=
function(b,c,e){return this.editor.graph.openLink(b,c,e)};EditorUi.prototype.showSplash=function(b){};EditorUi.prototype.getLocalData=function(b,c){c(localStorage.getItem(b))};EditorUi.prototype.setLocalData=function(b,c,e){localStorage.setItem(b,c);null!=e&&e()};EditorUi.prototype.removeLocalData=function(b,c){localStorage.removeItem(b);c()};EditorUi.prototype.setMathEnabled=function(b){this.editor.graph.mathEnabled=b;this.editor.updateGraphComponents();this.editor.graph.refresh();this.editor.graph.defaultMathEnabled=
b;this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(b){return this.editor.graph.mathEnabled};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(b){return this.isOfflineApp()||!navigator.onLine||!b&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};EditorUi.prototype.createSpinner=function(b,c,e){var d=null==b||null==c;e=null!=e?e:24;var g=new Spinner({lines:12,length:e,width:Math.round(e/
-3),radius:Math.round(e/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=g.spin;g.spin=function(e,l){var m=!1;this.active||(f.call(this,e),this.active=!0,null!=l&&(d&&(c=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,b=document.body.clientWidth/2-2),m=document.createElement("div"),m.style.position="absolute",m.style.whiteSpace="nowrap",m.style.background="#4B4243",m.style.color="white",m.style.fontFamily=
-Editor.defaultHtmlFont,m.style.fontSize="9pt",m.style.padding="6px",m.style.paddingLeft="10px",m.style.paddingRight="10px",m.style.zIndex=2E9,m.style.left=Math.max(0,b)+"px",m.style.top=Math.max(0,c+70)+"px",mxUtils.setPrefixedStyle(m.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(m.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(m.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=l.substring(l.length-3,l.length)&&"!"!=l.charAt(l.length-1)&&(l+="..."),
-m.innerHTML=l,e.appendChild(m),g.status=m),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(e,l)}));this.stop();return b}),m=!0);return m};var l=g.stop;g.stop=function(){l.call(this);this.active=!1;null!=g.status&&null!=g.status.parentNode&&g.status.parentNode.removeChild(g.status);g.status=null};g.pause=function(){return function(){}};return g};EditorUi.prototype.isCompatibleString=function(b){try{var d=mxUtils.parseXml(b),c=this.editor.extractGraphModel(d.documentElement,
+3),radius:Math.round(e/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),f=g.spin;g.spin=function(e,l){var k=!1;this.active||(f.call(this,e),this.active=!0,null!=l&&(d&&(c=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,b=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=
+Editor.defaultHtmlFont,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,b)+"px",k.style.top=Math.max(0,c+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"),"..."!=l.substring(l.length-3,l.length)&&"!"!=l.charAt(l.length-1)&&(l+="..."),
+k.innerHTML=l,e.appendChild(k),g.status=k),this.pause=mxUtils.bind(this,function(){var b=function(){};this.active&&(b=mxUtils.bind(this,function(){this.spin(e,l)}));this.stop();return b}),k=!0);return k};var l=g.stop;g.stop=function(){l.call(this);this.active=!1;null!=g.status&&null!=g.status.parentNode&&g.status.parentNode.removeChild(g.status);g.status=null};g.pause=function(){return function(){}};return g};EditorUi.prototype.isCompatibleString=function(b){try{var d=mxUtils.parseXml(b),c=this.editor.extractGraphModel(d.documentElement,
!0);return null!=c&&0==c.getElementsByTagName("parsererror").length}catch(q){}return!1};EditorUi.prototype.isVisioData=function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&4==b.charCodeAt(3)||80==b.charCodeAt(0)&&75==b.charCodeAt(1)&&3==b.charCodeAt(2)&&6==b.charCodeAt(3))};EditorUi.prototype.isRemoteVisioData=
function(b){return 8<b.length&&(208==b.charCodeAt(0)&&207==b.charCodeAt(1)&&17==b.charCodeAt(2)&&224==b.charCodeAt(3)&&161==b.charCodeAt(4)&&177==b.charCodeAt(5)&&26==b.charCodeAt(6)&&225==b.charCodeAt(7)||60==b.charCodeAt(0)&&63==b.charCodeAt(1)&&120==b.charCodeAt(2)&&109==b.charCodeAt(3)&&108==b.charCodeAt(3))};var b=EditorUi.prototype.createKeyHandler;EditorUi.prototype.createKeyHandler=function(d){var c=b.apply(this,arguments);if(!this.editor.chromeless||this.editor.editable){var e=c.getFunction,
-f=this.editor.graph,m=this;c.getFunction=function(b){if(f.isSelectionEmpty()&&null!=m.pages&&0<m.pages.length){var d=m.getSelectedPageIndex();if(mxEvent.isShiftDown(b)){if(37==b.keyCode)return function(){0<d&&m.movePage(d,d-1)};if(38==b.keyCode)return function(){0<d&&m.movePage(d,0)};if(39==b.keyCode)return function(){d<m.pages.length-1&&m.movePage(d,d+1)};if(40==b.keyCode)return function(){d<m.pages.length-1&&m.movePage(d,m.pages.length-1)}}else if(mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)){if(37==
-b.keyCode)return function(){0<d&&m.selectNextPage(!1)};if(38==b.keyCode)return function(){0<d&&m.selectPage(m.pages[0])};if(39==b.keyCode)return function(){d<m.pages.length-1&&m.selectNextPage(!0)};if(40==b.keyCode)return function(){d<m.pages.length-1&&m.selectPage(m.pages[m.pages.length-1])}}}return e.apply(this,arguments)}}return c};var c=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var d=c.apply(this,arguments);if(null==d)try{var e=b.indexOf("&lt;mxfile ");
-if(0<=e){var f=b.lastIndexOf("&lt;/mxfile&gt;");f>e&&(d=b.substring(e,f+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var m=mxUtils.parseXml(b),k=this.editor.extractGraphModel(m.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),d=null!=k?mxUtils.getXml(k):""}catch(u){}return d};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var d=b.indexOf('<meta charset="utf-8">');0<=d&&(b=b.slice(0,d)+'<meta charset="utf-8"/>'+
+f=this.editor.graph,k=this;c.getFunction=function(b){if(f.isSelectionEmpty()&&null!=k.pages&&0<k.pages.length){var d=k.getSelectedPageIndex();if(mxEvent.isShiftDown(b)){if(37==b.keyCode)return function(){0<d&&k.movePage(d,d-1)};if(38==b.keyCode)return function(){0<d&&k.movePage(d,0)};if(39==b.keyCode)return function(){d<k.pages.length-1&&k.movePage(d,d+1)};if(40==b.keyCode)return function(){d<k.pages.length-1&&k.movePage(d,k.pages.length-1)}}else if(mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b)){if(37==
+b.keyCode)return function(){0<d&&k.selectNextPage(!1)};if(38==b.keyCode)return function(){0<d&&k.selectPage(k.pages[0])};if(39==b.keyCode)return function(){d<k.pages.length-1&&k.selectNextPage(!0)};if(40==b.keyCode)return function(){d<k.pages.length-1&&k.selectPage(k.pages[k.pages.length-1])}}}return e.apply(this,arguments)}}return c};var c=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(b){var d=c.apply(this,arguments);if(null==d)try{var e=b.indexOf("&lt;mxfile ");
+if(0<=e){var f=b.lastIndexOf("&lt;/mxfile&gt;");f>e&&(d=b.substring(e,f+15).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/\\&quot;/g,'"').replace(/\n/g,""))}else var k=mxUtils.parseXml(b),n=this.editor.extractGraphModel(k.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility),d=null!=n?mxUtils.getXml(n):""}catch(u){}return d};EditorUi.prototype.validateFileData=function(b){if(null!=b&&0<b.length){var d=b.indexOf('<meta charset="utf-8">');0<=d&&(b=b.slice(0,d)+'<meta charset="utf-8"/>'+
b.slice(d+23-1,b.length));b=Graph.zapGremlins(b)}return b};EditorUi.prototype.replaceFileData=function(b){b=this.validateFileData(b);b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:null;var d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b){d=this.editor.graph;d.model.beginUpdate();try{var c=null!=this.pages?this.pages.slice():null,e=b.getElementsByTagName("diagram");if("0"!=urlParams.pages||1<e.length||1==e.length&&e[0].hasAttribute("name")){this.fileNode=b;this.pages=
null!=this.pages?this.pages:[];for(var f=e.length-1;0<=f;f--){var k=this.updatePageRoot(new DiagramPage(e[f]));null==k.getName()&&k.setName(mxResources.get("pageWithNumber",[f+1]));d.model.execute(new ChangePage(this,k,0==f?k:null,0))}}else"0"!=urlParams.pages&&null==this.fileNode&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",[1])),d.model.execute(new ChangePage(this,
-this.currentPage,this.currentPage,0))),this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)d.model.execute(new ChangePage(this,c[f],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,c,e,f,m,k,u,p,t,x,F){c=null!=c?c:this.editor.graph;m=null!=m?m:!1;t=null!=t?t:!0;var d,g=null;null==e||e.getMode()==App.MODE_DEVICE||e.getMode()==App.MODE_BROWSER?d="_blank":g=d=f;if(null==b)return"";
-var l=b;if("mxfile"!=l.nodeName.toLowerCase()){if(F){var n=b.ownerDocument.createElement("diagram");n.setAttribute("id",Editor.guid());n.appendChild(b)}else{n=Graph.zapGremlins(mxUtils.getXml(b));l=Graph.compress(n);if(Graph.decompress(l)!=n)return n;n=b.ownerDocument.createElement("diagram");n.setAttribute("id",Editor.guid());mxUtils.setTextContent(n,l)}l=b.ownerDocument.createElement("mxfile");l.appendChild(n)}x?(l=l.cloneNode(!0),l.removeAttribute("modified"),l.removeAttribute("host"),l.removeAttribute("agent"),
+this.currentPage,this.currentPage,0))),this.editor.setGraphXml(b),null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=c)for(f=0;f<c.length;f++)d.model.execute(new ChangePage(this,c[f],null))}finally{d.model.endUpdate()}}};EditorUi.prototype.createFileData=function(b,c,e,f,k,n,u,p,t,x,F){c=null!=c?c:this.editor.graph;k=null!=k?k:!1;t=null!=t?t:!0;var d,g=null;null==e||e.getMode()==App.MODE_DEVICE||e.getMode()==App.MODE_BROWSER?d="_blank":g=d=f;if(null==b)return"";
+var l=b;if("mxfile"!=l.nodeName.toLowerCase()){if(F){var m=b.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());m.appendChild(b)}else{m=Graph.zapGremlins(mxUtils.getXml(b));l=Graph.compress(m);if(Graph.decompress(l)!=m)return m;m=b.ownerDocument.createElement("diagram");m.setAttribute("id",Editor.guid());mxUtils.setTextContent(m,l)}l=b.ownerDocument.createElement("mxfile");l.appendChild(m)}x?(l=l.cloneNode(!0),l.removeAttribute("modified"),l.removeAttribute("host"),l.removeAttribute("agent"),
l.removeAttribute("etag"),l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("type")):(l.removeAttribute("userAgent"),l.removeAttribute("version"),l.removeAttribute("editor"),l.removeAttribute("pages"),l.removeAttribute("type"),mxClient.IS_CHROMEAPP?l.setAttribute("host","Chrome"):EditorUi.isElectronApp?l.setAttribute("host","Electron"):l.setAttribute("host",window.location.hostname),l.setAttribute("modified",(new Date).toISOString()),l.setAttribute("agent",
-navigator.appVersion),l.setAttribute("version",EditorUi.VERSION),l.setAttribute("etag",Editor.guid()),b=null!=e?e.getMode():this.mode,null!=b&&l.setAttribute("type",b),1<l.getElementsByTagName("diagram").length&&null!=this.pages&&l.setAttribute("pages",this.pages.length));F=F?mxUtils.getPrettyXml(l):mxUtils.getXml(l);if(!k&&!m&&(u||null!=e&&/(\.html)$/i.test(e.getTitle())))F=this.getHtml2(mxUtils.getXml(l),c,null!=e?e.getTitle():null,d,g);else if(k||!m&&null!=e&&/(\.svg)$/i.test(e.getTitle()))null==
+navigator.appVersion),l.setAttribute("version",EditorUi.VERSION),l.setAttribute("etag",Editor.guid()),b=null!=e?e.getMode():this.mode,null!=b&&l.setAttribute("type",b),1<l.getElementsByTagName("diagram").length&&null!=this.pages&&l.setAttribute("pages",this.pages.length));F=F?mxUtils.getPrettyXml(l):mxUtils.getXml(l);if(!n&&!k&&(u||null!=e&&/(\.html)$/i.test(e.getTitle())))F=this.getHtml2(mxUtils.getXml(l),c,null!=e?e.getTitle():null,d,g);else if(n||!k&&null!=e&&/(\.svg)$/i.test(e.getTitle()))null==
e||e.getMode()!=App.MODE_DEVICE&&e.getMode()!=App.MODE_BROWSER||(f=null),F=this.getEmbeddedSvg(F,c,f,null,p,t,g);return F};EditorUi.prototype.getXmlFileData=function(b,c,e,f){b=null!=b?b:!0;c=null!=c?c:!1;e=null!=e?e:!Editor.compressXml;var d=this.editor.getGraphXml(b,f);if(b&&null!=this.fileNode&&null!=this.currentPage)if(b=function(b){var c=b.getElementsByTagName("mxGraphModel"),c=0<c.length?c[0]:null;null==c&&e?(c=mxUtils.trim(mxUtils.getTextContent(b)),b=b.cloneNode(!1),0<c.length&&(c=Graph.decompress(c),
null!=c&&0<c.length&&b.appendChild(mxUtils.parseXml(c).documentElement))):null==c||e?b=b.cloneNode(!0):(b=b.cloneNode(!1),mxUtils.setTextContent(b,Graph.compressNode(c)));d.appendChild(b)},EditorUi.removeChildNodes(this.currentPage.node),mxUtils.setTextContent(this.currentPage.node,Graph.compressNode(d)),d=this.fileNode.cloneNode(!1),c)b(this.currentPage.node);else for(c=0;c<this.pages.length;c++){var g=this.pages[c],l=g.node;if(g!=this.currentPage)if(g.needsUpdate){var k=new mxCodec(mxUtils.createXmlDocument()),
k=k.encode(new mxGraphModel(g.root));this.editor.graph.saveViewState(g.viewState,k,null,f);EditorUi.removeChildNodes(l);mxUtils.setTextContent(l,Graph.compressNode(k));delete g.needsUpdate}else f&&(this.updatePageRoot(g),null!=g.viewState.backgroundImage&&(null!=g.viewState.backgroundImage.originalSrc?g.viewState.backgroundImage=this.createImageForPageLink(g.viewState.backgroundImage.originalSrc,g):Graph.isPageLink(g.viewState.backgroundImage.src)&&(g.viewState.backgroundImage=this.createImageForPageLink(g.viewState.backgroundImage.src,
@@ -3409,9 +3413,9 @@ b[EditorUi.DIFF_INSERT][d].data=mxUtils.getXml(c)}catch(n){b[EditorUi.DIFF_INSER
"["+d[c].style.length+"]"),0==Object.keys(d[c]).length&&delete d[c];0==Object.keys(d).length&&delete f.cells[b]}}),d(EditorUi.DIFF_INSERT),d(EditorUi.DIFF_UPDATE),0==Object.keys(f.cells).length&&delete f.cells);0==Object.keys(f).length&&delete b[EditorUi.DIFF_UPDATE][e]}0==Object.keys(b[EditorUi.DIFF_UPDATE]).length&&delete b[EditorUi.DIFF_UPDATE]}return b};EditorUi.prototype.anonymizeAttributes=function(b,c){if(null!=b.attributes)for(var d=0;d<b.attributes.length;d++)"as"!=b.attributes[d].name&&
b.setAttribute(b.attributes[d].name,this.anonymizeString(b.attributes[d].value,c));if(null!=b.childNodes)for(d=0;d<b.childNodes.length;d++)this.anonymizeAttributes(b.childNodes[d],c)};EditorUi.prototype.anonymizeNode=function(b,c){for(var d=b.getElementsByTagName("mxCell"),g=0;g<d.length;g++)null!=d[g].getAttribute("value")&&d[g].setAttribute("value","["+d[g].getAttribute("value").length+"]"),null!=d[g].getAttribute("xmlValue")&&d[g].setAttribute("xmlValue","["+d[g].getAttribute("xmlValue").length+
"]"),null!=d[g].getAttribute("style")&&d[g].setAttribute("style","["+d[g].getAttribute("style").length+"]"),null!=d[g].parentNode&&"root"!=d[g].parentNode.nodeName&&null!=d[g].parentNode.parentNode&&(d[g].setAttribute("id",d[g].parentNode.getAttribute("id")),d[g].parentNode.parentNode.replaceChild(d[g],d[g].parentNode));return b};EditorUi.prototype.synchronizeCurrentFile=function(b){var d=this.getCurrentFile();null!=d&&(d.savingFile?this.handleError({message:mxResources.get("busy")}):!b&&d.invalidChecksum?
-d.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(d.clearAutosave(),this.editor.setStatus(""),b?d.reloadFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,f,m,k,u,
-p,t,x,F){m=null!=m?m:!0;k=null!=k?k:!1;var d=this.editor.graph;if(c||!b&&null!=t&&/(\.svg)$/i.test(t.getTitle())){var g=null!=d.themes&&"darkTheme"==d.defaultThemeName;x=!1;if(g||null!=this.pages&&this.currentPage!=this.pages[0]){var l=d.getGlobalVariable,d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet());d.setBackgroundImage=this.editor.graph.setBackgroundImage;var n=this.pages[0];this.currentPage==n?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=n.viewState&&
-null!=n.viewState&&d.setBackgroundImage(n.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?n.getName():"pagenumber"==b?1:l.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(n.root)}}u=null!=u?u:this.getXmlFileData(m,k,x,F);t=null!=t?t:this.getCurrentFile();b=this.createFileData(u,d,t,window.location.href,b,c,e,f,m,p,x);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=function(b,c,e,f,k,
+d.handleFileError(null,!0):this.spinner.spin(document.body,mxResources.get("updatingDocument"))&&(d.clearAutosave(),this.editor.setStatus(""),b?d.reloadFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)})):d.synchronizeFile(mxUtils.bind(this,function(){d.handleFileSuccess("manual"==DrawioFile.SYNC)}),mxUtils.bind(this,function(b){d.handleFileError(b,!0)}))))};EditorUi.prototype.getFileData=function(b,c,e,f,k,n,u,
+p,t,x,F){k=null!=k?k:!0;n=null!=n?n:!1;var d=this.editor.graph;if(c||!b&&null!=t&&/(\.svg)$/i.test(t.getTitle())){var g=null!=d.themes&&"darkTheme"==d.defaultThemeName;x=!1;if(g||null!=this.pages&&this.currentPage!=this.pages[0]){var l=d.getGlobalVariable,d=this.createTemporaryGraph(g?d.getDefaultStylesheet():d.getStylesheet());d.setBackgroundImage=this.editor.graph.setBackgroundImage;var m=this.pages[0];this.currentPage==m?d.setBackgroundImage(this.editor.graph.backgroundImage):null!=m.viewState&&
+null!=m.viewState&&d.setBackgroundImage(m.viewState.backgroundImage);d.getGlobalVariable=function(b){return"page"==b?m.getName():"pagenumber"==b?1:l.apply(this,arguments)};document.body.appendChild(d.container);d.model.setRoot(m.root)}}u=null!=u?u:this.getXmlFileData(k,n,x,F);t=null!=t?t:this.getCurrentFile();b=this.createFileData(u,d,t,window.location.href,b,c,e,f,k,p,x);d!=this.editor.graph&&d.container.parentNode.removeChild(d.container);return b};EditorUi.prototype.getHtml=function(b,c,e,f,k,
n){n=null!=n?n:!0;var d=null,g=EditorUi.drawHost+"/js/embed-static.min.js";if(null!=c){var d=n?c.getGraphBounds():c.getBoundingBox(c.getSelectionCells()),l=c.view.scale;n=Math.floor(d.x/l-c.view.translate.x);l=Math.floor(d.y/l-c.view.translate.y);d=c.background;null==k&&(c=this.getBasenames().join(";"),0<c.length&&(g=EditorUi.drawHost+"/embed.js?s="+c));b.setAttribute("x0",n);b.setAttribute("y0",l)}null!=b&&(b.setAttribute("pan","1"),b.setAttribute("zoom","1"),b.setAttribute("resize","0"),b.setAttribute("fit",
"0"),b.setAttribute("border","20"),b.setAttribute("links","1"),null!=f&&b.setAttribute("edit",f));null!=k&&(k=k.replace(/&/g,"&amp;"));b=null!=b?Graph.zapGremlins(mxUtils.getXml(b)):"";f=Graph.compress(b);Graph.decompress(f)!=b&&(f=encodeURIComponent(b));return(null==k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,IE=9" ><![endif]--\x3e\n':"")+"<!DOCTYPE html>\n<html"+(null!=k?' xmlns="http://www.w3.org/1999/xhtml">':">")+"\n<head>\n"+(null==k?null!=e?"<title>"+mxUtils.htmlEntities(e)+
"</title>\n":"":"<title>diagrams.net</title>\n")+(null!=k?'<meta http-equiv="refresh" content="0;URL=\''+k+"'\"/>\n":"")+"</head>\n<body"+(null==k&&null!=d&&d!=mxConstants.NONE?' style="background-color:'+d+';">':">")+'\n<div class="mxgraph" style="position:relative;overflow:auto;width:100%;">\n<div style="width:1px;height:1px;overflow:hidden;">'+f+"</div>\n</div>\n"+(null==k?'<script type="text/javascript" src="'+g+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+
@@ -3420,20 +3424,20 @@ return(null==k?'\x3c!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=5,
mxUtils.htmlEntities(JSON.stringify(b))+'"></div>\n'+(null==k?'<script type="text/javascript" src="'+c+'">\x3c/script>':'<a style="position:absolute;top:50%;left:50%;margin-top:-128px;margin-left:-64px;" href="'+k+'" target="_blank"><img border="0" src="'+EditorUi.drawHost+'/images/drawlogo128.png"/></a>')+"\n</body>\n</html>\n"};EditorUi.prototype.setFileData=function(b){b=this.validateFileData(b);this.pages=this.fileNode=this.currentPage=null;b=null!=b&&0<b.length?mxUtils.parseXml(b).documentElement:
null;var d=Editor.extractParserError(b,mxResources.get("invalidOrMissingFile"));if(d)throw Error(mxResources.get("notADiagramFile")+" ("+d+")");d=null!=b?this.editor.extractGraphModel(b,!0):null;null!=d&&(b=d);if(null!=b&&"mxfile"==b.nodeName&&(d=b.getElementsByTagName("diagram"),"0"!=urlParams.pages||1<d.length||1==d.length&&d[0].hasAttribute("name"))){var c=null;this.fileNode=b;this.pages=[];for(var e=0;e<d.length;e++)null==d[e].getAttribute("id")&&d[e].setAttribute("id",e),b=new DiagramPage(d[e]),
null==b.getName()&&b.setName(mxResources.get("pageWithNumber",[e+1])),this.pages.push(b),null!=urlParams["page-id"]&&b.getId()==urlParams["page-id"]&&(c=b);this.currentPage=null!=c?c:this.pages[Math.max(0,Math.min(this.pages.length-1,urlParams.page||0))];b=this.currentPage.node}"0"!=urlParams.pages&&null==this.fileNode&&null!=b&&(this.fileNode=b.ownerDocument.createElement("mxfile"),this.currentPage=new DiagramPage(b.ownerDocument.createElement("diagram")),this.currentPage.setName(mxResources.get("pageWithNumber",
-[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var f=urlParams["layer-ids"].split(" ");b={};for(e=0;e<f.length;e++)b[f[e]]=!0;for(var k=this.editor.graph.getModel(),p=k.getChildren(k.root),e=0;e<p.length;e++){var v=p[e];k.setVisible(v,b[v.id]||!1)}}catch(y){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():
-this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,f,k,n,p,v,t,x,F,H){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();
+[1])),this.pages=[this.currentPage]);this.editor.setGraphXml(b);null!=this.currentPage&&(this.currentPage.root=this.editor.graph.model.root);if(null!=urlParams["layer-ids"])try{var f=urlParams["layer-ids"].split(" ");b={};for(e=0;e<f.length;e++)b[f[e]]=!0;for(var k=this.editor.graph.getModel(),u=k.getChildren(k.root),e=0;e<u.length;e++){var p=u[e];k.setVisible(p,b[p.id]||!1)}}catch(y){}};EditorUi.prototype.getBaseFilename=function(b){var d=this.getCurrentFile(),d=null!=d&&null!=d.getTitle()?d.getTitle():
+this.defaultFilename;if(/(\.xml)$/i.test(d)||/(\.html)$/i.test(d)||/(\.svg)$/i.test(d)||/(\.png)$/i.test(d))d=d.substring(0,d.lastIndexOf("."));/(\.drawio)$/i.test(d)&&(d=d.substring(0,d.lastIndexOf(".")));!b&&null!=this.pages&&1<this.pages.length&&null!=this.currentPage&&null!=this.currentPage.node.getAttribute("name")&&0<this.currentPage.getName().length&&(d=d+"-"+this.currentPage.getName());return d};EditorUi.prototype.downloadFile=function(b,c,e,f,k,n,u,p,t,x,F,H){try{f=null!=f?f:this.editor.graph.isSelectionEmpty();
var d=this.getBaseFilename(!k),g=d+("xml"==b||"pdf"==b&&F?".drawio":"")+"."+b;if("xml"==b){var l=Graph.xmlDeclaration+"\n"+this.getFileData(!0,null,null,null,f,k,null,null,null,c);this.saveData(g,b,l,"text/xml")}else if("html"==b)l=this.getHtml2(this.getFileData(!0),this.editor.graph,d),this.saveData(g,b,l,"text/html");else if("svg"!=b&&"xmlsvg"!=b||!this.spinner.spin(document.body,mxResources.get("export")))"xmlpng"==b?g=d+".png":"jpeg"==b&&(g=d+".jpg"),this.saveRequest(g,b,mxUtils.bind(this,function(d,
-c){try{var e=this.editor.graph.pageVisible;null!=n&&(this.editor.graph.pageVisible=n);var g=this.createDownloadRequest(d,b,f,c,p,k,v,t,x,F,H);this.editor.graph.pageVisible=e;return g}catch(U){this.handleError(U)}}));else{var m=null,q=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==b){var u=this.editor.graph.background;
-if(p||u==mxConstants.NONE)u=null;var y=this.editor.graph.getSvg(u,null,null,null,null,f);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else g=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();q(b)}),f)}}catch(M){this.handleError(M)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,k,n,p,v,t,
+c){try{var e=this.editor.graph.pageVisible;null!=n&&(this.editor.graph.pageVisible=n);var g=this.createDownloadRequest(d,b,f,c,u,k,p,t,x,F,H);this.editor.graph.pageVisible=e;return g}catch(U){this.handleError(U)}}));else{var m=null,q=mxUtils.bind(this,function(b){b.length<=MAX_REQUEST_SIZE?this.saveData(g,"svg",b,"image/svg+xml"):this.handleError({message:mxResources.get("drawingTooLarge")},mxResources.get("error"),mxUtils.bind(this,function(){mxUtils.popup(m)}))});if("svg"==b){var v=this.editor.graph.background;
+if(u||v==mxConstants.NONE)v=null;var y=this.editor.graph.getSvg(v,null,null,null,null,f);e&&this.editor.graph.addSvgShadow(y);this.editor.convertImages(y,mxUtils.bind(this,mxUtils.bind(this,function(b){this.spinner.stop();q(Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+mxUtils.getXml(b))})))}else g=d+".svg",m=this.getFileData(!1,!0,null,mxUtils.bind(this,function(b){this.spinner.stop();q(b)}),f)}}catch(L){this.handleError(L)}};EditorUi.prototype.createDownloadRequest=function(b,c,e,f,k,n,u,p,t,
x,F){var d=this.editor.graph,g=d.getGraphBounds();e=this.getFileData(!0,null,null,null,e,0==n?!1:"xmlpng"!=c,null,null,null,!1,"pdf"==c);var l="",m="";if(g.width*g.height>MAX_AREA||e.length>MAX_REQUEST_SIZE)throw{message:mxResources.get("drawingTooLarge")};x=x?"1":"0";"pdf"==c&&(null!=F?m="&from="+F.from+"&to="+F.to:0==n&&(m="&allPages=1"));if("xmlpng"==c&&(x="1",c="png",null!=this.pages&&null!=this.currentPage))for(n=0;n<this.pages.length;n++)if(this.pages[n]==this.currentPage){l="&from="+n;break}n=
d.background;"png"!=c&&"pdf"!=c||!k?k||null!=n&&n!=mxConstants.NONE||(n="#ffffff"):n=mxConstants.NONE;k={globalVars:d.getExportVariables()};t&&(k.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});Graph.translateDiagram&&(k.diagramLanguage=Graph.diagramLanguage);return new mxXmlRequest(EXPORT_URL,"format="+c+l+m+"&bg="+(null!=n?n:mxConstants.NONE)+"&base64="+f+"&embedXml="+x+"&xml="+encodeURIComponent(e)+(null!=b?"&filename="+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(k))+
-(null!=p?"&scale="+p:"")+(null!=v?"&border="+v:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=window.location.hash,g=mxUtils.bind(this,function(e){var g=null!=b.data?b.data:"";null!=e&&0<e.length&&(0<g.length&&(g+="\n"),g+=e);e=new LocalFile(this,"csv"!=b.format&&0<g.length?g:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);e.getHash=function(){return d};this.fileLoaded(e);"csv"==
+(null!=u?"&scale="+u:"")+(null!=p?"&border="+p:""))};EditorUi.prototype.setMode=function(b,c){this.mode=b};EditorUi.prototype.loadDescriptor=function(b,c,e){var d=window.location.hash,g=mxUtils.bind(this,function(e){var g=null!=b.data?b.data:"";null!=e&&0<e.length&&(0<g.length&&(g+="\n"),g+=e);e=new LocalFile(this,"csv"!=b.format&&0<g.length?g:this.emptyDiagramXml,null!=urlParams.title?decodeURIComponent(urlParams.title):this.defaultFilename,!0);e.getHash=function(){return d};this.fileLoaded(e);"csv"==
b.format&&this.importCsv(g,mxUtils.bind(this,function(b){this.editor.undoManager.clear();this.editor.setModified(!1);this.editor.setStatus("")}));if(null!=b.update){var f=null!=b.interval?parseInt(b.interval):6E4,l=null,k=mxUtils.bind(this,function(){var d=this.currentPage;mxUtils.post(b.update,"xml="+encodeURIComponent(mxUtils.getXml(this.editor.getGraphXml())),mxUtils.bind(this,function(b){d===this.currentPage&&(200<=b.getStatus()&&300>=b.getStatus()?(this.updateDiagram(b.getText()),m()):this.handleError({message:mxResources.get("error")+
" "+b.getStatus()}))}),mxUtils.bind(this,function(b){this.handleError(b)}))}),m=mxUtils.bind(this,function(){window.clearTimeout(l);l=window.setTimeout(k,f)});this.editor.addListener("pageSelected",mxUtils.bind(this,function(){m();k()}));m();k()}null!=c&&c()});null!=b.url&&0<b.url.length?this.editor.loadUrl(b.url,mxUtils.bind(this,function(b){g(b)}),mxUtils.bind(this,function(b){null!=e&&e(b)})):g("")};EditorUi.prototype.updateDiagram=function(b){function d(b){var d=new mxCellOverlay(b.image||f.warningImage,
b.tooltip,b.align,b.valign,b.offset);d.addListener(mxEvent.CLICK,function(d,c){e.alert(b.tooltip)});return d}var c=null,e=this;if(null!=b&&0<b.length&&(c=mxUtils.parseXml(b),b=null!=c?c.documentElement:null,null!=b&&"updates"==b.nodeName)){var f=this.editor.graph,k=f.getModel();k.beginUpdate();var p=null;try{for(b=b.firstChild;null!=b;){if("update"==b.nodeName){var v=k.getCell(b.getAttribute("id"));if(null!=v){try{var t=b.getAttribute("value");if(null!=t){var x=mxUtils.parseXml(t).documentElement;
-if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(v,x);else for(var F=x.attributes,H=0;H<F.length;H++)f.setAttributeForCell(v,F[H].nodeName,0<F[H].nodeValue.length?F[H].nodeValue:null)}}catch(M){null!=window.console&&console.log("Error in value for "+v.id+": "+M)}try{var z=b.getAttribute("style");null!=z&&f.model.setStyle(v,z)}catch(M){null!=window.console&&console.log("Error in style for "+v.id+": "+M)}try{var D=b.getAttribute("icon");if(null!=D){var N=0<D.length?JSON.parse(D):null;null!=
-N&&N.append||f.removeCellOverlays(v);null!=N&&f.addCellOverlay(v,d(N))}}catch(M){null!=window.console&&console.log("Error in icon for "+v.id+": "+M)}try{var E=b.getAttribute("geometry");if(null!=E){var E=JSON.parse(E),J=f.getCellGeometry(v);if(null!=J){J=J.clone();for(key in E){var C=parseFloat(E[key]);"dx"==key?J.x+=C:"dy"==key?J.y+=C:"dw"==key?J.width+=C:"dh"==key?J.height+=C:J[key]=parseFloat(E[key])}f.model.setGeometry(v,J)}}}catch(M){null!=window.console&&console.log("Error in icon for "+v.id+
-": "+M)}}}else if("model"==b.nodeName){for(var K=b.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(b.firstChild)).decode(K,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(f.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))f.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(p=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):
+if(null!=x)if("1"==x.getAttribute("replace-value"))k.setValue(v,x);else for(var F=x.attributes,H=0;H<F.length;H++)f.setAttributeForCell(v,F[H].nodeName,0<F[H].nodeValue.length?F[H].nodeValue:null)}}catch(L){null!=window.console&&console.log("Error in value for "+v.id+": "+L)}try{var z=b.getAttribute("style");null!=z&&f.model.setStyle(v,z)}catch(L){null!=window.console&&console.log("Error in style for "+v.id+": "+L)}try{var D=b.getAttribute("icon");if(null!=D){var N=0<D.length?JSON.parse(D):null;null!=
+N&&N.append||f.removeCellOverlays(v);null!=N&&f.addCellOverlay(v,d(N))}}catch(L){null!=window.console&&console.log("Error in icon for "+v.id+": "+L)}try{var E=b.getAttribute("geometry");if(null!=E){var E=JSON.parse(E),J=f.getCellGeometry(v);if(null!=J){J=J.clone();for(key in E){var C=parseFloat(E[key]);"dx"==key?J.x+=C:"dy"==key?J.y+=C:"dw"==key?J.width+=C:"dh"==key?J.height+=C:J[key]=parseFloat(E[key])}f.model.setGeometry(v,J)}}}catch(L){null!=window.console&&console.log("Error in icon for "+v.id+
+": "+L)}}}else if("model"==b.nodeName){for(var K=b.firstChild;null!=K&&K.nodeType!=mxConstants.NODETYPE_ELEMENT;)K=K.nextSibling;null!=K&&(new mxCodec(b.firstChild)).decode(K,k)}else if("view"==b.nodeName){if(b.hasAttribute("scale")&&(f.view.scale=parseFloat(b.getAttribute("scale"))),b.hasAttribute("dx")||b.hasAttribute("dy"))f.view.translate=new mxPoint(parseFloat(b.getAttribute("dx")||0),parseFloat(b.getAttribute("dy")||0))}else"fit"==b.nodeName&&(p=b.hasAttribute("max-scale")?parseFloat(b.getAttribute("max-scale")):
1);b=b.nextSibling}}finally{k.endUpdate()}null!=p&&this.chromelessResize&&this.chromelessResize(!0,p)}return c};EditorUi.prototype.getCopyFilename=function(b,c){var d=null!=b&&null!=b.getTitle()?b.getTitle():this.defaultFilename,e="",g=d.lastIndexOf(".");0<=g&&(e=d.substring(g),d=d.substring(0,g));if(c)var f=new Date,g=f.getFullYear(),k=f.getMonth()+1,p=f.getDate(),t=f.getHours(),x=f.getMinutes(),f=f.getSeconds(),d=d+(" "+(g+"-"+k+"-"+p+"-"+t+"-"+x+"-"+f));return d=mxResources.get("copyOf",[d])+e};
EditorUi.prototype.fileLoaded=function(b,c){var d=this.getCurrentFile();this.fileEditable=this.fileLoadedError=null;this.setCurrentFile(null);var e=!1;this.hideDialog();null!=d&&(EditorUi.debug("File.closed",[d]),d.removeListener(this.descriptorChangedListener),d.close());this.editor.graph.model.clear();this.editor.undoManager.clear();var g=mxUtils.bind(this,function(){this.setGraphEnabled(!1);this.setCurrentFile(null);null!=d&&this.updateDocumentTitle();this.editor.graph.model.clear();this.editor.undoManager.clear();
this.setBackgroundImage(null);!c&&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();c||this.showSplash()});if(null!=b)try{mxClient.IS_SF&&"min"==uiTheme&&(this.diagramContainer.style.visibility="");this.openingFile=!0;this.setCurrentFile(b);b.addListener("descriptorChanged",this.descriptorChangedListener);
@@ -3458,10 +3462,10 @@ mxResources.get("save")),p.insertBefore(H,p.firstChild),mxEvent.addListener(H,"c
this.showError(mxResources.get("error"),mxResources.get("nothingIsSelected"),mxResources.get("ok"));else{var d=z.getSelectionCells(),c=z.view.getBounds(d),e=z.view.scale;c.x/=e;c.y/=e;c.width/=e;c.height/=e;c.x-=z.view.translate.x;c.y-=z.view.translate.y;J(d,c)}mxEvent.consume(b)});mxEvent.addGestureListeners(k,function(){},mxUtils.bind(this,function(b){z.isMouseDown&&null!=z.panningManager&&null!=z.graphHandler.first&&(z.graphHandler.suspend(),null!=z.graphHandler.hint&&(z.graphHandler.hint.style.visibility=
"hidden"),k.style.backgroundColor="#f1f3f4",k.style.cursor="copy",z.panningManager.stop(),z.autoScroll=!1,mxEvent.consume(b))}),mxUtils.bind(this,function(b){z.isMouseDown&&null!=z.panningManager&&null!=z.graphHandler&&(k.style.backgroundColor="",k.style.cursor="default",this.sidebar.showTooltips=!0,z.panningManager.stop(),z.graphHandler.reset(),z.isMouseDown=!1,z.autoScroll=!0,C(b),mxEvent.consume(b))}));mxEvent.addListener(k,"mouseleave",mxUtils.bind(this,function(b){z.isMouseDown&&null!=z.graphHandler.first&&
(z.graphHandler.resume(),null!=z.graphHandler.hint&&(z.graphHandler.hint.style.visibility="visible"),k.style.backgroundColor="",k.style.cursor="",z.autoScroll=!0)}));Graph.fileSupport&&(mxEvent.addListener(k,"dragover",mxUtils.bind(this,function(b){k.style.backgroundColor="#f1f3f4";b.dataTransfer.dropEffect="copy";k.style.cursor="copy";this.sidebar.hideTooltip();b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"drop",mxUtils.bind(this,function(b){k.style.cursor="";k.style.backgroundColor=
-"";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,f,m,n,q,p,u,v){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,n,q),d)],d[0].vertex=!0,J(d,new mxRectangle(0,0,n,q),b,mxEvent.isAltDown(b)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," ")),null!=g&&null!=g.parentNode&&0<c.length&&
-(g.parentNode.removeChild(g),g=null);else{var x=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var f=Editor.extractGraphModelFromPdf(d);null!=f&&0<f.length&&(d=f)}if(null!=d)if(f=mxUtils.parseXml(d),"mxlibrary"==f.documentElement.nodeName)try{var m=JSON.parse(mxUtils.getTextContent(f.documentElement));l(m,k);c=c.concat(m);E(b);this.spinner.stop();x=!0}catch(aa){}else if("mxfile"==f.documentElement.nodeName)try{for(var n=f.documentElement.getElementsByTagName("diagram"),m=0;m<
-n.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(n[m])),p=this.editor.graph.getBoundingBoxFromGeometry(q);J(q,new mxRectangle(0,0,p.width,p.height),b)}x=!0}catch(aa){null!=window.console&&console.log("error in drop handler:",aa)}x||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),g=null)});null!=v&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?this.importVisio(v,
-function(b){t(b,"text/xml")},null,p):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,p)&&null!=v?this.parseFile(v,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?t(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):t(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"dragleave",function(b){k.style.cursor=
+"";0<b.dataTransfer.files.length&&this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,mxUtils.bind(this,function(d,e,f,m,n,q,p,u,x){if(null!=d&&"image/"==e.substring(0,6))d="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image="+this.convertDataUri(d),d=[new mxCell("",new mxGeometry(0,0,n,q),d)],d[0].vertex=!0,J(d,new mxRectangle(0,0,n,q),b,mxEvent.isAltDown(b)?null:p.substring(0,p.lastIndexOf(".")).replace(/_/g," ")),null!=g&&null!=g.parentNode&&0<c.length&&
+(g.parentNode.removeChild(g),g=null);else{var v=!1,t=mxUtils.bind(this,function(d,e){if(null!=d&&"application/pdf"==e){var f=Editor.extractGraphModelFromPdf(d);null!=f&&0<f.length&&(d=f)}if(null!=d)if(f=mxUtils.parseXml(d),"mxlibrary"==f.documentElement.nodeName)try{var m=JSON.parse(mxUtils.getTextContent(f.documentElement));l(m,k);c=c.concat(m);E(b);this.spinner.stop();v=!0}catch(aa){}else if("mxfile"==f.documentElement.nodeName)try{for(var n=f.documentElement.getElementsByTagName("diagram"),m=0;m<
+n.length;m++){var q=this.stringToCells(Editor.getDiagramNodeXml(n[m])),p=this.editor.graph.getBoundingBoxFromGeometry(q);J(q,new mxRectangle(0,0,p.width,p.height),b)}v=!0}catch(aa){null!=window.console&&console.log("error in drop handler:",aa)}v||(this.spinner.stop(),this.handleError({message:mxResources.get("errorLoadingFile")}));null!=g&&null!=g.parentNode&&0<c.length&&(g.parentNode.removeChild(g),g=null)});null!=x&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?this.importVisio(x,
+function(b){t(b,"text/xml")},null,p):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(d,p)&&null!=x?this.parseFile(x,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?t(b.responseText,"text/xml"):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))})):t(d,e)}}));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(k,"dragleave",function(b){k.style.cursor=
"";k.style.backgroundColor="";b.stopPropagation();b.preventDefault()}));t=t.cloneNode(!1);t.setAttribute("src",Editor.editImage);t.setAttribute("title",mxResources.get("edit"));p.insertBefore(t,p.firstChild);mxEvent.addListener(t,"click",N);mxEvent.addListener(k,"dblclick",function(b){mxEvent.getSource(b)==k&&N(b)});f=t.cloneNode(!1);f.setAttribute("src",Editor.plusImage);f.setAttribute("title",mxResources.get("add"));p.insertBefore(f,p.firstChild);mxEvent.addListener(f,"click",C);this.isOffline()||
".scratchpad"!=b.title||null==EditorUi.scratchpadHelpLink||(f=document.createElement("span"),f.setAttribute("title",mxResources.get("help")),f.style.cssText="color:#a3a3a3;text-decoration:none;margin-right:2px;cursor:pointer;",mxUtils.write(f,"?"),mxEvent.addGestureListeners(f,mxUtils.bind(this,function(b){this.openLink(EditorUi.scratchpadHelpLink);mxEvent.consume(b)})),p.insertBefore(f,p.firstChild))}q.appendChild(p);q.style.paddingRight=18*p.childNodes.length+"px"}};EditorUi.prototype.addLibraryEntries=
function(b,c){for(var d=0;d<b.length;d++){var e=b[d],g=e.data;if(null!=g){var g=this.convertDataUri(g),f="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;";"fixed"==e.aspect&&(f+="aspect=fixed;");c.appendChild(this.sidebar.createVertexTemplate(f+"image="+g,e.w,e.h,"",e.title||"",!1,!1,!0))}else null!=e.xml&&(g=this.stringToCells(Graph.decompress(e.xml)),0<g.length&&c.appendChild(this.sidebar.createVertexTemplateFromCells(g,e.w,e.h,e.title||"",!0,!1,!0)))}};EditorUi.prototype.getResource=
@@ -3527,26 +3531,26 @@ f&&(d.target=f);x||(d.lightbox=!1);d.nav=this.editor.graph.foldingEnabled;e=pars
'">\x3c/script>')};EditorUi.prototype.showHtmlDialog=function(b,c,e,f){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=document.createElement("h3");mxUtils.write(g,mxResources.get("html"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var l=document.createElement("div");l.style.cssText="border-bottom:1px solid lightGray;padding-bottom:8px;margin-bottom:12px;";var k=document.createElement("input");k.style.cssText="margin-right:8px;margin-top:8px;margin-bottom:8px;";
k.setAttribute("value","url");k.setAttribute("type","radio");k.setAttribute("name","type-embedhtmldialog");g=k.cloneNode(!0);g.setAttribute("value","copy");l.appendChild(g);var q=document.createElement("span");mxUtils.write(q,mxResources.get("includeCopyOfMyDiagram"));l.appendChild(q);mxUtils.br(l);l.appendChild(k);q=document.createElement("span");mxUtils.write(q,mxResources.get("publicDiagramUrl"));l.appendChild(q);var p=this.getCurrentFile();null==e&&null!=p&&p.constructor==window.DriveFile&&(q=
document.createElement("a"),q.style.paddingLeft="12px",q.style.color="gray",q.style.cursor="pointer",mxUtils.write(q,mxResources.get("share")),l.appendChild(q),mxEvent.addListener(q,"click",mxUtils.bind(this,function(){this.hideDialog();this.drive.showPermissions(p.getId())})));g.setAttribute("checked","checked");null==e&&k.setAttribute("disabled","disabled");d.appendChild(l);var t=this.addLinkSection(d),H=this.addCheckbox(d,mxResources.get("zoom"),!0,null,!0);mxUtils.write(d,":");var z=document.createElement("input");
-z.setAttribute("type","text");z.style.marginRight="16px";z.style.width="60px";z.style.marginLeft="4px";z.style.marginRight="12px";z.value="100%";d.appendChild(z);var D=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,N=N=this.addCheckbox(d,mxResources.get("allPages"),l,!l),E=this.addCheckbox(d,mxResources.get("layers"),!0),J=this.addCheckbox(d,mxResources.get("tags"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),K=this.addEditButton(d,C),M=K.getEditInput();
-M.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?M.removeAttribute("disabled"):M.setAttribute("disabled","disabled");M.checked&&C.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(k.checked?e:null,H.checked,z.value,t.getTarget(),t.getColor(),D.checked,N.checked,E.checked,J.checked,C.checked,K.getLink())}),null,b,c);this.showDialog(b.container,340,430,
+z.setAttribute("type","text");z.style.marginRight="16px";z.style.width="60px";z.style.marginLeft="4px";z.style.marginRight="12px";z.value="100%";d.appendChild(z);var D=this.addCheckbox(d,mxResources.get("fit"),!0),l=null!=this.pages&&1<this.pages.length,N=N=this.addCheckbox(d,mxResources.get("allPages"),l,!l),E=this.addCheckbox(d,mxResources.get("layers"),!0),J=this.addCheckbox(d,mxResources.get("tags"),!0),C=this.addCheckbox(d,mxResources.get("lightbox"),!0),K=this.addEditButton(d,C),L=K.getEditInput();
+L.style.marginBottom="16px";mxEvent.addListener(C,"change",function(){C.checked?L.removeAttribute("disabled"):L.setAttribute("disabled","disabled");L.checked&&C.checked?K.getEditSelect().removeAttribute("disabled"):K.getEditSelect().setAttribute("disabled","disabled")});b=new CustomDialog(this,d,mxUtils.bind(this,function(){f(k.checked?e:null,H.checked,z.value,t.getTarget(),t.getColor(),D.checked,N.checked,E.checked,J.checked,C.checked,K.getLink())}),null,b,c);this.showDialog(b.container,340,430,
!0,!0);g.focus()};EditorUi.prototype.showPublishLinkDialog=function(b,c,e,f,k,n,p,t){var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=document.createElement("h3");mxUtils.write(g,b||mxResources.get("link"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(g);var l=this.getCurrentFile();b=0;if(null==l||l.constructor!=window.DriveFile||c)p=null!=p?p:"https://www.diagrams.net/doc/faq/publish-diagram-as-link";else{b=80;p=null!=p?p:"https://www.diagrams.net/doc/faq/google-drive-publicly-publish-diagram";
g=document.createElement("div");g.style.cssText="border-bottom:1px solid lightGray;padding-bottom:14px;padding-top:6px;margin-bottom:14px;text-align:center;";var m=document.createElement("div");m.style.whiteSpace="normal";mxUtils.write(m,mxResources.get("linkAccountRequired"));g.appendChild(m);m=mxUtils.button(mxResources.get("share"),mxUtils.bind(this,function(){this.drive.showPermissions(l.getId())}));m.style.marginTop="12px";m.className="geBtn";g.appendChild(m);d.appendChild(g);m=document.createElement("a");
m.style.paddingLeft="12px";m.style.color="gray";m.style.fontSize="11px";m.style.cursor="pointer";mxUtils.write(m,mxResources.get("check"));g.appendChild(m);mxEvent.addListener(m,"click",mxUtils.bind(this,function(){this.spinner.spin(document.body,mxResources.get("loading"))&&this.getPublicUrl(this.getCurrentFile(),mxUtils.bind(this,function(b){this.spinner.stop();b=new ErrorDialog(this,null,mxResources.get(null!=b?"diagramIsPublic":"diagramIsNotPublic"),mxResources.get("ok"));this.showDialog(b.container,
300,80,!0,!1);b.init()}))}))}var q=null,u=null;if(null!=e||null!=f)b+=30,mxUtils.write(d,mxResources.get("width")+":"),q=document.createElement("input"),q.setAttribute("type","text"),q.style.marginRight="16px",q.style.width="50px",q.style.marginLeft="6px",q.style.marginRight="16px",q.style.marginBottom="10px",q.value="100%",d.appendChild(q),mxUtils.write(d,mxResources.get("height")+":"),u=document.createElement("input"),u.setAttribute("type","text"),u.style.width="50px",u.style.marginLeft="6px",u.style.marginBottom=
-"10px",u.value=f+"px",d.appendChild(u),mxUtils.br(d);var v=this.addLinkSection(d,n);e=null!=this.pages&&1<this.pages.length;var E=null;if(null==l||l.constructor!=window.DriveFile||c)E=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var J=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!n),C=this.addEditButton(d,J),K=C.getEditInput();n&&(K.style.marginLeft=J.style.marginLeft,J.style.display="none",b-=20);var M=this.addCheckbox(d,mxResources.get("layers"),!0);M.style.marginLeft=K.style.marginLeft;
-M.style.marginTop="8px";var Z=this.addCheckbox(d,mxResources.get("tags"),!0);Z.style.marginLeft=K.style.marginLeft;Z.style.marginBottom="16px";Z.style.marginTop="16px";mxEvent.addListener(J,"change",function(){J.checked?(M.removeAttribute("disabled"),K.removeAttribute("disabled")):(M.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&J.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,
-d,mxUtils.bind(this,function(){k(v.getTarget(),v.getColor(),null==E?!0:E.checked,J.checked,C.getLink(),M.checked,null!=q?q.value:null,null!=u?u.value:null,Z.checked)}),null,mxResources.get("create"),p,t);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,k){var d=document.createElement("div");d.style.whiteSpace=
+"10px",u.value=f+"px",d.appendChild(u),mxUtils.br(d);var v=this.addLinkSection(d,n);e=null!=this.pages&&1<this.pages.length;var E=null;if(null==l||l.constructor!=window.DriveFile||c)E=this.addCheckbox(d,mxResources.get("allPages"),e,!e);var J=this.addCheckbox(d,mxResources.get("lightbox"),!0,null,null,!n),C=this.addEditButton(d,J),K=C.getEditInput();n&&(K.style.marginLeft=J.style.marginLeft,J.style.display="none",b-=20);var L=this.addCheckbox(d,mxResources.get("layers"),!0);L.style.marginLeft=K.style.marginLeft;
+L.style.marginTop="8px";var Z=this.addCheckbox(d,mxResources.get("tags"),!0);Z.style.marginLeft=K.style.marginLeft;Z.style.marginBottom="16px";Z.style.marginTop="16px";mxEvent.addListener(J,"change",function(){J.checked?(L.removeAttribute("disabled"),K.removeAttribute("disabled")):(L.setAttribute("disabled","disabled"),K.setAttribute("disabled","disabled"));K.checked&&J.checked?C.getEditSelect().removeAttribute("disabled"):C.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,
+d,mxUtils.bind(this,function(){k(v.getTarget(),v.getColor(),null==E?!0:E.checked,J.checked,C.getLink(),L.checked,null!=q?q.value:null,null!=u?u.value:null,Z.checked)}),null,mxResources.get("create"),p,t);this.showDialog(c.container,340,300+b,!0,!0);null!=q?(q.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)):v.focus()};EditorUi.prototype.showRemoteExportDialog=function(b,c,e,f,k){var d=document.createElement("div");d.style.whiteSpace=
"nowrap";var g=document.createElement("h3");mxUtils.write(g,mxResources.get("image"));g.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:"+(k?"10":"4")+"px";d.appendChild(g);if(k){mxUtils.write(d,mxResources.get("zoom")+":");var l=document.createElement("input");l.setAttribute("type","text");l.style.marginRight="16px";l.style.width="60px";l.style.marginLeft="4px";l.style.marginRight="12px";l.value=this.lastExportZoom||"100%";d.appendChild(l);mxUtils.write(d,mxResources.get("borderWidth")+
":");var m=document.createElement("input");m.setAttribute("type","text");m.style.marginRight="16px";m.style.width="60px";m.style.marginLeft="4px";m.value=this.lastExportBorder||"0";d.appendChild(m);mxUtils.br(d)}var q=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,this.editor.graph.isSelectionEmpty()),p=f?null:this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),Editor.defaultIncludeDiagram),g=this.editor.graph,t=f?null:this.addCheckbox(d,mxResources.get("transparentBackground"),g.background==
mxConstants.NONE||null==g.background);null!=t&&(t.style.marginBottom="16px");b=new CustomDialog(this,d,mxUtils.bind(this,function(){var b=parseInt(l.value)/100||1,d=parseInt(m.value)||0;e(!q.checked,null!=p?p.checked:!1,null!=t?t.checked:!1,b,d)}),null,b,c);this.showDialog(b.container,300,(k?25:0)+(f?125:210),!0,!0)};EditorUi.prototype.showExportDialog=function(b,c,e,f,k,n,p,t,y){p=null!=p?p:Editor.defaultIncludeDiagram;var d=document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph,
l="jpeg"==t?220:300,m=document.createElement("h3");mxUtils.write(m,b);m.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:10px";d.appendChild(m);mxUtils.write(d,mxResources.get("zoom")+":");var q=document.createElement("input");q.setAttribute("type","text");q.style.marginRight="16px";q.style.width="60px";q.style.marginLeft="4px";q.style.marginRight="12px";q.value=this.lastExportZoom||"100%";d.appendChild(q);mxUtils.write(d,mxResources.get("borderWidth")+":");var u=document.createElement("input");
u.setAttribute("type","text");u.style.marginRight="16px";u.style.width="60px";u.style.marginLeft="4px";u.value=this.lastExportBorder||"0";d.appendChild(u);mxUtils.br(d);var v=this.addCheckbox(d,mxResources.get("selectionOnly"),!1,g.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 C=document.createElement("select");C.style.marginTop="16px";C.style.marginLeft=
"8px";b=["selectionOnly","diagram","page"];for(m=0;m<b.length;m++)if(!g.isSelectionEmpty()||"selectionOnly"!=b[m]){var K=document.createElement("option");mxUtils.write(K,mxResources.get(b[m]));K.setAttribute("value",b[m]);C.appendChild(K)}y?(mxUtils.write(d,mxResources.get("size")+":"),d.appendChild(C),mxUtils.br(d),l+=26,mxEvent.addListener(C,"change",function(){"selectionOnly"==C.value&&(v.checked=!0)})):n&&(d.appendChild(J),mxUtils.write(d,mxResources.get("crop")),mxUtils.br(d),l+=30,mxEvent.addListener(v,
-"change",function(){v.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));g.isSelectionEmpty()?y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(C.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(v,"change",function(){C.value=v.checked?"selectionOnly":"diagram"}));var M=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),Z=null;Editor.isDarkMode()&&
-(Z=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var L=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible),O=document.createElement("input");O.style.marginTop="16px";O.style.marginRight="8px";O.setAttribute("type","checkbox");var U=document.createElement("input");U.style.marginTop="16px";U.style.marginRight="8px";U.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||O.setAttribute("disabled","disabled");c&&(d.appendChild(O),mxUtils.write(d,mxResources.get("embedImages")),
+"change",function(){v.checked?J.removeAttribute("disabled"):J.setAttribute("disabled","disabled")}));g.isSelectionEmpty()?y&&(v.style.display="none",v.nextSibling.style.display="none",v.nextSibling.nextSibling.style.display="none",l-=30):(C.value="diagram",J.setAttribute("checked","checked"),J.defaultChecked=!0,mxEvent.addListener(v,"change",function(){C.value=v.checked?"selectionOnly":"diagram"}));var L=this.addCheckbox(d,mxResources.get("transparentBackground"),!1,null,null,"jpeg"!=t),Z=null;Editor.isDarkMode()&&
+(Z=this.addCheckbox(d,mxResources.get("dark"),!0),l+=26);var M=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible),P=document.createElement("input");P.style.marginTop="16px";P.style.marginRight="8px";P.setAttribute("type","checkbox");var U=document.createElement("input");U.style.marginTop="16px";U.style.marginRight="8px";U.setAttribute("type","checkbox");!this.isOffline()&&this.canvasSupported||P.setAttribute("disabled","disabled");c&&(d.appendChild(P),mxUtils.write(d,mxResources.get("embedImages")),
mxUtils.br(d),d.appendChild(U),mxUtils.write(d,mxResources.get("embedFonts")),mxUtils.br(d),l+=60);var G=null;if("png"==t||"jpeg"==t)G=this.addCheckbox(d,mxResources.get("grid"),!1,this.isOffline()||!this.canvasSupported,!1,!0),l+=30;var I=this.addCheckbox(d,mxResources.get("includeCopyOfMyDiagram"),p,null,null,"jpeg"!=t);I.style.marginBottom="16px";var B=document.createElement("select");B.style.maxWidth="260px";B.style.marginLeft="8px";B.style.marginRight="10px";B.className="geBtn";c=document.createElement("option");
c.setAttribute("value","auto");mxUtils.write(c,mxResources.get("automatic"));B.appendChild(c);c=document.createElement("option");c.setAttribute("value","blank");mxUtils.write(c,mxResources.get("openInNewWindow"));B.appendChild(c);c=document.createElement("option");c.setAttribute("value","self");mxUtils.write(c,mxResources.get("openInThisWindow"));B.appendChild(c);"svg"==t&&(mxUtils.write(d,mxResources.get("links")+":"),d.appendChild(B),mxUtils.br(d),mxUtils.br(d),l+=50);e=new CustomDialog(this,d,
-mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=q.value;k(q.value,M.checked,!v.checked,L.checked,I.checked,O.checked,u.value,J.checked,!1,B.value,null!=G?G.checked:null,null!=Z?Z.checked:null,C.value,U.checked)}),null,e,f);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,k){var d=
+mxUtils.bind(this,function(){this.lastExportBorder=u.value;this.lastExportZoom=q.value;k(q.value,L.checked,!v.checked,M.checked,I.checked,P.checked,u.value,J.checked,!1,B.value,null!=G?G.checked:null,null!=Z?Z.checked:null,C.value,U.checked)}),null,e,f);this.showDialog(e.container,340,l,!0,!0,null,null,null,null,!0);q.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?q.select():document.execCommand("selectAll",!1,null)};EditorUi.prototype.showEmbedImageDialog=function(b,c,e,f,k){var d=
document.createElement("div");d.style.whiteSpace="nowrap";var g=this.editor.graph;if(null!=c){var l=document.createElement("h3");mxUtils.write(l,c);l.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:4px";d.appendChild(l)}var m=this.addCheckbox(d,mxResources.get("fit"),!0),q=this.addCheckbox(d,mxResources.get("shadow"),g.shadowVisible&&f,!f),p=this.addCheckbox(d,e),t=this.addCheckbox(d,mxResources.get("lightbox"),!0),z=this.addEditButton(d,t),D=z.getEditInput(),N=1<g.model.getChildCount(g.model.getRoot()),
E=this.addCheckbox(d,mxResources.get("layers"),N,!N);E.style.marginLeft=D.style.marginLeft;E.style.marginBottom="12px";E.style.marginTop="8px";mxEvent.addListener(t,"change",function(){t.checked?(N&&E.removeAttribute("disabled"),D.removeAttribute("disabled")):(E.setAttribute("disabled","disabled"),D.setAttribute("disabled","disabled"));D.checked&&t.checked?z.getEditSelect().removeAttribute("disabled"):z.getEditSelect().setAttribute("disabled","disabled")});c=new CustomDialog(this,d,mxUtils.bind(this,
function(){b(m.checked,q.checked,p.checked,t.checked,z.getLink(),E.checked)}),null,mxResources.get("embed"),k);this.showDialog(c.container,280,300,!0,!0)};EditorUi.prototype.createEmbedImage=function(b,c,e,f,k,n,p,t){function d(d){var c=" ",m="";f&&(c=" onclick=\"(function(img){if(img.wnd!=null&&!img.wnd.closed){img.wnd.focus();}else{var r=function(evt){if(evt.data=='ready'&&evt.source==img.wnd){img.wnd.postMessage(decodeURIComponent(img.getAttribute('src')),'*');window.removeEventListener('message',r);}};window.addEventListener('message',r);img.wnd=window.open('"+
@@ -3594,18 +3598,18 @@ EditorUi.prototype.convertDataUri=function(b){if("data:"==b.substring(0,5)){var
this.importFileInputElt){var d=document.createElement("input");d.setAttribute("type","file");mxEvent.addListener(d,"change",mxUtils.bind(this,function(){null!=d.files&&(this.importFiles(d.files,null,null,this.maxImageSize),d.type="",d.type="file",d.value="")}));d.style.display="none";document.body.appendChild(d);this.importFileInputElt=d}this.importFileInputElt.click()}else{window.openNew=!1;window.openKey="import";window.listBrowserFiles=mxUtils.bind(this,function(b,d){StorageFile.listFiles(this,
"F",b,d)});window.openBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.getFileContent(this,b,d,c)});window.deleteBrowserFile=mxUtils.bind(this,function(b,d,c){StorageFile.deleteFile(this,b,d,c)});if(!c){var e=Editor.useLocalStorage;Editor.useLocalStorage=!b}window.openFile=new OpenFile(mxUtils.bind(this,function(b){this.hideDialog(b)}));window.openFile.setConsumer(mxUtils.bind(this,function(b,d){if(null!=d&&Graph.fileSupport&&/(\.v(dx|sdx?))($|\?)/i.test(d)){var c=new Blob([b],{type:"application/octet-stream"});
this.importVisio(c,mxUtils.bind(this,function(b){this.importXml(b,0,0,!0)}),null,d)}else this.editor.graph.setSelectionCells(this.importXml(b,0,0,!0))}));this.showDialog((new OpenDialog(this)).container,Editor.useLocalStorage?640:360,Editor.useLocalStorage?480:220,!0,!0,function(){window.openFile=null});if(!c){var g=this.dialog,f=g.close;this.dialog.close=mxUtils.bind(this,function(b){Editor.useLocalStorage=e;f.apply(g,arguments);b&&null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.showSplash()})}}};
-EditorUi.prototype.importZipFile=function(b,c,e){var d=this,g=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(g){if(0==Object.keys(g.files).length)e();else{var f=0,l,k=!1;g.forEach(function(b,d){var g=d.name.toLowerCase();"diagram/diagram.xml"==g?(k=!0,d.async("string").then(function(b){0==b.indexOf("<mxfile ")?c(b):e()})):0==g.indexOf("versions/")&&(g=parseInt(g.substr(9)),g>f&&(f=g,l=d))});0<f?l.async("string").then(function(g){!d.isOffline()&&
-(new XMLHttpRequest).upload&&d.isRemoteFileFormat(g,b.name)?d.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):k||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?g():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",g))};EditorUi.prototype.importFile=function(b,c,e,f,k,n,p,t,y,x,F,H){x=null!=x?x:!0;var d=!1,g=null,
+EditorUi.prototype.importZipFile=function(b,c,e){var d=this,g=mxUtils.bind(this,function(){this.loadingExtensions=!1;"undefined"!==typeof JSZip?JSZip.loadAsync(b).then(function(g){if(0==Object.keys(g.files).length)e();else{var f=0,k,l=!1;g.forEach(function(b,d){var g=d.name.toLowerCase();"diagram/diagram.xml"==g?(l=!0,d.async("string").then(function(b){0==b.indexOf("<mxfile ")?c(b):e()})):0==g.indexOf("versions/")&&(g=parseInt(g.substr(9)),g>f&&(f=g,k=d))});0<f?k.async("string").then(function(g){!d.isOffline()&&
+(new XMLHttpRequest).upload&&d.isRemoteFileFormat(g,b.name)?d.parseFile(new Blob([g],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?c(b.responseText):e())}),b.name):e()}):l||e()}},function(b){e(b)}):e()});"undefined"!==typeof JSZip||this.loadingExtensions||this.isOffline(!0)?g():(this.loadingExtensions=!0,mxscript("js/extensions.min.js",g))};EditorUi.prototype.importFile=function(b,c,e,f,k,n,p,t,y,x,F,H){x=null!=x?x:!0;var d=!1,g=null,
l=mxUtils.bind(this,function(b){var d=null;null!=b&&"<mxlibrary"==b.substring(0,10)?this.loadLibrary(new LocalLibrary(this,b,p)):d=this.importXml(b,e,f,x,null,null!=H?mxEvent.isControlDown(H):null);null!=t&&t(d)});"image"==c.substring(0,5)?(y=!1,"image/png"==c.substring(0,9)&&(c=F?null:this.extractGraphModelFromPng(b),null!=c&&0<c.length&&(g=this.importXml(c,e,f,x,null,null!=H?mxEvent.isControlDown(H):null),y=!0)),y||(c=this.editor.graph,F=b.indexOf(";"),0<F&&(b=b.substring(0,F)+b.substring(b.indexOf(",",
F+1))),x&&c.isGridEnabled()&&(e=c.snap(e),f=c.snap(f)),g=[c.insertVertex(null,null,"",e,f,k,n,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+b+";")])):/(\.*<graphml )/.test(b)?(d=!0,this.importGraphML(b,l)):null!=y&&null!=p&&(/(\.v(dx|sdx?))($|\?)/i.test(p)||/(\.vs(x|sx?))($|\?)/i.test(p))?(d=!0,this.importVisio(y,l)):!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,p)?(d=!0,this.parseFile(null!=
y?y:new Blob([b],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&(200<=b.status&&299>=b.status?l(b.responseText):null!=t&&t(null))}),p)):0==b.indexOf("PK")&&null!=y?(d=!0,this.importZipFile(y,l,mxUtils.bind(this,function(){g=this.insertTextAt(this.validateFileData(b),e,f,!0,null,x);t(g)}))):/(\.v(sd|dx))($|\?)/i.test(p)||/(\.vs(s|x))($|\?)/i.test(p)||(g=this.insertTextAt(this.validateFileData(b),e,f,!0,null,x,null,null!=H?mxEvent.isControlDown(H):null));d||null==
-t||t(g);return g};EditorUi.prototype.importFiles=function(b,c,e,f,k,n,p,t,y,x,F,H,z){f=null!=f?f:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=e,g=!0;c=null!=c?c:0;e=null!=e?e:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=F||this.resampleThreshold,q=0;q<b.length;q++)if("image/"==b[q].type.substring(0,6)&&b[q].size>m){l=!0;break}var u=mxUtils.bind(this,function(){var l=this.editor.graph,m=l.gridSize;k=null!=k?k:mxUtils.bind(this,function(b,c,e,g,f,l,k,m,n){try{return null!=
-b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,k)),null):this.importFile(b,c,e,g,f,l,k,m,n,d,H,z)}catch(la){return this.handleError(la),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,u=q,v=[],C=mxUtils.bind(this,function(b,d){v[b]=d;if(0==--u){this.spinner.stop();if(null!=t)t(v);else{var c=[];l.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var g=
+t||t(g);return g};EditorUi.prototype.importFiles=function(b,c,e,f,k,n,p,t,y,x,F,H,z){f=null!=f?f:this.maxImageSize;x=null!=x?x:this.maxImageBytes;var d=null!=c&&null!=e,g=!0;c=null!=c?c:0;e=null!=e?e:0;var l=!1;if(!mxClient.IS_CHROMEAPP&&null!=b)for(var m=F||this.resampleThreshold,q=0;q<b.length;q++)if("image/"==b[q].type.substring(0,6)&&b[q].size>m){l=!0;break}var u=mxUtils.bind(this,function(){var l=this.editor.graph,m=l.gridSize;k=null!=k?k:mxUtils.bind(this,function(b,c,e,g,f,k,l,m,n){try{return null!=
+b&&"<mxlibrary"==b.substring(0,10)?(this.spinner.stop(),this.loadLibrary(new LocalLibrary(this,b,l)),null):this.importFile(b,c,e,g,f,k,l,m,n,d,H,z)}catch(la){return this.handleError(la),null}});n=null!=n?n:mxUtils.bind(this,function(b){l.setSelectionCells(b)});if(this.spinner.spin(document.body,mxResources.get("loading")))for(var q=b.length,u=q,v=[],C=mxUtils.bind(this,function(b,d){v[b]=d;if(0==--u){this.spinner.stop();if(null!=t)t(v);else{var c=[];l.getModel().beginUpdate();try{for(var e=0;e<v.length;e++){var g=
v[e]();null!=g&&(c=c.concat(g))}}finally{l.getModel().endUpdate()}}n(c)}}),y=0;y<q;y++)mxUtils.bind(this,function(d){var n=b[d];if(null!=n){var q=new FileReader;q.onload=mxUtils.bind(this,function(b){if(null==p||p(n))if("image/"==n.type.substring(0,6))if("image/svg"==n.type.substring(0,9)){var q=Graph.clipSvgDataUri(b.target.result),t=q.indexOf(","),u=decodeURIComponent(escape(atob(q.substring(t+1)))),v=mxUtils.parseXml(u),u=v.getElementsByTagName("svg");if(0<u.length){var u=u[0],z=H?null:u.getAttribute("content");
null!=z&&"<"!=z.charAt(0)&&"%"!=z.charAt(0)&&(z=unescape(window.atob?atob(z):Base64.decode(z,!0)));null!=z&&"%"==z.charAt(0)&&(z=decodeURIComponent(z));null==z||"<mxfile "!==z.substring(0,8)&&"<mxGraphModel "!==z.substring(0,14)?C(d,mxUtils.bind(this,function(){try{if(q.substring(0,t+1),null!=v){var b=v.getElementsByTagName("svg");if(0<b.length){var g=b[0],p=g.getAttribute("width"),u=g.getAttribute("height"),p=null!=p&&"%"!=p.charAt(p.length-1)?parseFloat(p):NaN,u=null!=u&&"%"!=u.charAt(u.length-
-1)?parseFloat(u):NaN,x=g.getAttribute("viewBox");if(null==x||0==x.length)g.setAttribute("viewBox","0 0 "+p+" "+u);else if(isNaN(p)||isNaN(u)){var C=x.split(" ");3<C.length&&(p=parseFloat(C[2]),u=parseFloat(C[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(g));var z=Math.min(1,Math.min(f/Math.max(1,p)),f/Math.max(1,u)),L=k(q,n.type,c+d*m,e+d*m,Math.max(1,Math.round(p*z)),Math.max(1,Math.round(u*z)),n.name);if(isNaN(p)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){p=Math.max(1,y.width);
-u=Math.max(1,y.height);L[0].geometry.width=p;L[0].geometry.height=u;g.setAttribute("viewBox","0 0 "+p+" "+u);q=Editor.createSvgDataUri(mxUtils.getXml(g));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[L[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return L}}}catch(ia){}return null})):C(d,mxUtils.bind(this,function(){return k(z,"text/xml",c+d*m,e+d*m,0,0,n.name)}))}else C(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==
-n.type){var L=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=L&&0<L.length){var y=new Image;y.src=b.target.result;C(d,mxUtils.bind(this,function(){return k(L,"text/xml",c+d*m,e+d*m,y.width,y.height,n.name)}));u=!0}}u||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):
+1)?parseFloat(u):NaN,x=g.getAttribute("viewBox");if(null==x||0==x.length)g.setAttribute("viewBox","0 0 "+p+" "+u);else if(isNaN(p)||isNaN(u)){var C=x.split(" ");3<C.length&&(p=parseFloat(C[2]),u=parseFloat(C[3]))}q=Editor.createSvgDataUri(mxUtils.getXml(g));var z=Math.min(1,Math.min(f/Math.max(1,p)),f/Math.max(1,u)),M=k(q,n.type,c+d*m,e+d*m,Math.max(1,Math.round(p*z)),Math.max(1,Math.round(u*z)),n.name);if(isNaN(p)||isNaN(u)){var y=new Image;y.onload=mxUtils.bind(this,function(){p=Math.max(1,y.width);
+u=Math.max(1,y.height);M[0].geometry.width=p;M[0].geometry.height=u;g.setAttribute("viewBox","0 0 "+p+" "+u);q=Editor.createSvgDataUri(mxUtils.getXml(g));var b=q.indexOf(";");0<b&&(q=q.substring(0,b)+q.substring(q.indexOf(",",b+1)));l.setCellStyles("image",q,[M[0]])});y.src=Editor.createSvgDataUri(mxUtils.getXml(g))}return M}}}catch(ia){}return null})):C(d,mxUtils.bind(this,function(){return k(z,"text/xml",c+d*m,e+d*m,0,0,n.name)}))}else C(d,mxUtils.bind(this,function(){return null}))}else{u=!1;if("image/png"==
+n.type){var M=H?null:this.extractGraphModelFromPng(b.target.result);if(null!=M&&0<M.length){var y=new Image;y.src=b.target.result;C(d,mxUtils.bind(this,function(){return k(M,"text/xml",c+d*m,e+d*m,y.width,y.height,n.name)}));u=!0}}u||(mxClient.IS_CHROMEAPP?(this.spinner.stop(),this.showError(mxResources.get("error"),mxResources.get("dragAndDropNotSupported"),mxResources.get("cancel"),mxUtils.bind(this,function(){}),null,mxResources.get("ok"),mxUtils.bind(this,function(){this.actions.get("import").funct()}))):
this.loadImage(b.target.result,mxUtils.bind(this,function(l){this.resizeImage(l,b.target.result,mxUtils.bind(this,function(b,l,q){C(d,mxUtils.bind(this,function(){if(null!=b&&b.length<x){var p=g&&this.isResampleImageSize(n.size,F)?Math.min(1,Math.min(f/l,f/q)):1;return k(b,n.type,c+d*m,e+d*m,Math.round(l*p),Math.round(q*p),n.name)}this.handleError({message:mxResources.get("imageTooBig")});return null}))}),g,f,F,n.size)}),mxUtils.bind(this,function(){this.handleError({message:mxResources.get("invalidOrMissingFile")})})))}else q=
b.target.result,k(q,n.type,c+d*m,e+d*m,240,160,n.name,function(b){C(d,function(){return b})},n)});/(\.v(dx|sdx?))($|\?)/i.test(n.name)||/(\.vs(x|sx?))($|\?)/i.test(n.name)?k(null,n.type,c+d*m,e+d*m,240,160,n.name,function(b){C(d,function(){return b})},n):"image"==n.type.substring(0,5)||"application/pdf"==n.type?q.readAsDataURL(n):q.readAsText(n)}})(y)});if(l){l=[];for(q=0;q<b.length;q++)l.push(b[q]);b=l;this.confirmImageResize(function(b){g=b;u()},y)}else u()};EditorUi.prototype.confirmImageResize=
function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?this.spinner.pause():function(){},e=isLocalStorage||mxClient.IS_CHROMEAPP?mxSettings.getResizeImages():null,g=function(e,g){if(e||c)mxSettings.setResizeImages(e?g:null),mxSettings.save();d();b(g)};null==e||c?this.showDialog((new ConfirmDialog(this,mxResources.get("resizeLargeImages"),function(b){g(b,!0)},function(b){g(b,!1)},mxResources.get("resize"),mxResources.get("actualSize"),'<img style="margin-top:8px;" src="'+Editor.loResImage+
@@ -3613,13 +3617,13 @@ function(b,c){c=null!=c?c:!1;var d=null!=this.spinner&&null!=this.spinner.pause?
function(b,c){c=null!=c?c:this.resampleThreshold;return b>c};EditorUi.prototype.resizeImage=function(b,c,e,f,k,n,p){k=null!=k?k:this.maxImageSize;var d=Math.max(1,b.width),g=Math.max(1,b.height);if(f&&this.isResampleImageSize(null!=p?p:c.length,n))try{var l=Math.max(d/k,g/k);if(1<l){var m=Math.round(d/l),q=Math.round(g/l),t=document.createElement("canvas");t.width=m;t.height=q;t.getContext("2d").drawImage(b,0,0,m,q);var u=t.toDataURL();if(u.length<c.length){var N=document.createElement("canvas");
N.width=m;N.height=q;var E=N.toDataURL();u!==E&&(c=u,d=m,g=q)}}}catch(J){}e(c,d,g)};EditorUi.prototype.extractGraphModelFromPng=function(b){return Editor.extractGraphModelFromPng(b)};EditorUi.prototype.loadImage=function(b,c,e){try{var d=new Image;d.onload=function(){d.width=0<d.width?d.width:120;d.height=0<d.height?d.height:120;c(d)};null!=e&&(d.onerror=e);d.src=b}catch(m){if(null!=e)e(m);else throw m;}};var f=EditorUi.prototype.init;EditorUi.prototype.init=function(){mxStencilRegistry.allowEval=
mxStencilRegistry.allowEval&&!this.isOfflineApp();this.isSettingsEnabled()&&("1"==urlParams.sketch&&this.doSetSketchMode(null!=mxSettings.settings.sketchMode&&null==urlParams.rough?mxSettings.settings.sketchMode:"0"!=urlParams.rough),this.formatWidth=mxSettings.getFormatWidth());var b=this,c=this.editor.graph;Editor.isDarkMode()&&(c.view.defaultGridColor=mxGraphView.prototype.defaultDarkGridColor);c.cellEditor.editPlantUmlData=function(d,e,g){var f=JSON.parse(g);e=new TextareaDialog(b,mxResources.get("plantUml")+
-":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,f.format,function(g,l,k){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==f.format)c.labelChanged(d,"<pre>"+g+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(g),[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=l,m.height=k,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:e,format:f.format}))}finally{c.getModel().endUpdate()}},
-function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};c.cellEditor.editMermaidData=function(d,e,g){var f=JSON.parse(g);e=new TextareaDialog(b,mxResources.get("mermaid")+":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(e,f.config,function(g,l,k){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",g,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,
-l),m.height=Math.max(m.height,k),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:e,config:f.config},null,2))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};var e=c.cellEditor.startEditing;c.cellEditor.startEditing=function(d,g){try{var f=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=f)this.editPlantUmlData(d,g,f);else if(f=this.graph.getAttributeForCell(d,"mermaidData"),
-null!=f)this.editMermaidData(d,g,f);else{var l=c.getCellStyle(d);"1"==mxUtils.getValue(l,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(Z){b.handleError(Z)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(K){b.handleError(K)}return c};var k=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=k.apply(this,arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});
+":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generatePlantUmlImage(e,f.format,function(g,k,l){b.spinner.stop();c.getModel().beginUpdate();try{if("txt"==f.format)c.labelChanged(d,"<pre>"+g+"</pre>"),c.updateCellSize(d,!0);else{c.setCellStyles("image",b.convertDataUri(g),[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=k,m.height=l,c.cellsResized([d],[m],!1))}c.setAttributeForCell(d,"plantUmlData",JSON.stringify({data:e,format:f.format}))}finally{c.getModel().endUpdate()}},
+function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};c.cellEditor.editMermaidData=function(d,e,g){var f=JSON.parse(g);e=new TextareaDialog(b,mxResources.get("mermaid")+":",f.data,function(e){null!=e&&b.spinner.spin(document.body,mxResources.get("inserting"))&&b.generateMermaidImage(e,f.config,function(g,k,l){b.spinner.stop();c.getModel().beginUpdate();try{c.setCellStyles("image",g,[d]);var m=c.model.getGeometry(d);null!=m&&(m=m.clone(),m.width=Math.max(m.width,
+k),m.height=Math.max(m.height,l),c.cellsResized([d],[m],!1));c.setAttributeForCell(d,"mermaidData",JSON.stringify({data:e,config:f.config},null,2))}finally{c.getModel().endUpdate()}},function(d){b.handleError(d)})},null,null,400,220);b.showDialog(e.container,420,300,!0,!0);e.init()};var e=c.cellEditor.startEditing;c.cellEditor.startEditing=function(d,g){try{var f=this.graph.getAttributeForCell(d,"plantUmlData");if(null!=f)this.editPlantUmlData(d,g,f);else if(f=this.graph.getAttributeForCell(d,"mermaidData"),
+null!=f)this.editMermaidData(d,g,f);else{var k=c.getCellStyle(d);"1"==mxUtils.getValue(k,"metaEdit","0")?b.showDataDialog(d):e.apply(this,arguments)}}catch(Z){b.handleError(Z)}};c.getLinkTitle=function(d){return b.getLinkTitle(d)};c.customLinkClicked=function(d){var c=!1;try{b.handleCustomLink(d),c=!0}catch(K){b.handleError(K)}return c};var k=c.parseBackgroundImage;c.parseBackgroundImage=function(b){var d=k.apply(this,arguments);null!=d&&null!=d.src&&Graph.isPageLink(d.src)&&(d={originalSrc:d.src});
return d};var m=c.setBackgroundImage;c.setBackgroundImage=function(d){null!=d&&null!=d.originalSrc&&(d=b.createImageForPageLink(d.originalSrc,b.currentPage,this));m.apply(this,arguments)};this.editor.addListener("pageRenamed",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pageMoved",mxUtils.bind(this,function(){c.refreshBackgroundImage()}));this.editor.addListener("pagesPatched",mxUtils.bind(this,function(b,d){var e=null!=c.backgroundImage?c.backgroundImage.originalSrc:
null;if(null!=e){var g=e.indexOf(",");if(0<g)for(var e=e.substring(g+1),g=d.getProperty("patches"),f=0;f<g.length;f++)if(null!=g[f][EditorUi.DIFF_UPDATE]&&null!=g[f][EditorUi.DIFF_UPDATE][e]){c.refreshBackgroundImage();break}}}));var n=c.getBackgroundImageObject;c.getBackgroundImageObject=function(d,c){var e=n.apply(this,arguments);if(null!=e&&null!=e.originalSrc)if(!c)e={src:e.originalSrc};else if(c&&null!=this.themes&&"darkTheme"==this.defaultThemeName){var g=this.stylesheet,f=this.shapeForegroundColor,
-l=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";e=b.createImageForPageLink(e.originalSrc);this.shapeBackgroundColor=l;this.shapeForegroundColor=f;this.stylesheet=g}return e};var p=this.clearDefaultStyle;this.clearDefaultStyle=function(){p.apply(this,arguments)};this.isOffline()||"undefined"===typeof window.EditDataDialog||(EditDataDialog.placeholderHelpLink="https://www.diagrams.net/doc/faq/predefined-placeholders");
+k=this.shapeBackgroundColor;this.stylesheet=this.getDefaultStylesheet();this.shapeBackgroundColor="#ffffff";this.shapeForegroundColor="#000000";e=b.createImageForPageLink(e.originalSrc);this.shapeBackgroundColor=k;this.shapeForegroundColor=f;this.stylesheet=g}return e};var p=this.clearDefaultStyle;this.clearDefaultStyle=function(){p.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 t=b.editor.getEditBlankUrl;this.editor.getEditBlankUrl=function(b){b=null!=b?b:"";"1"==urlParams.dev&&(b+=(0<b.length?"&":"?")+"dev=1");return t.apply(this,arguments)};var y=c.addClickHandler;c.addClickHandler=function(b,d,e){var g=d;d=function(b,d){if(null==d){var e=mxEvent.getSource(b);"a"==e.nodeName.toLowerCase()&&(d=e.getAttribute("href"))}null!=
d&&c.isCustomLink(d)&&(mxEvent.isTouchEvent(b)||!mxEvent.isPopupTrigger(b))&&c.customLinkClicked(d)&&mxEvent.consume(b);null!=g&&g(b,d)};y.call(this,b,d,e)};f.apply(this,arguments);mxClient.IS_SVG&&this.editor.graph.addSvgShadow(c.view.canvas.ownerSVGElement,null,!0);if(null!=this.menus){var x=Menus.prototype.addPopupMenuEditItems;this.menus.addPopupMenuEditItems=function(d,c,e){b.editor.graph.isSelectionEmpty()?x.apply(this,arguments):b.menus.addMenuItems(d,"delete - cut copy copyAsImage - duplicate".split(" "),
null,e)}}b.actions.get("print").funct=function(){b.showDialog((new PrintDialog(b)).container,360,null!=b.pages&&1<b.pages.length?450:370,!0,!0)};this.defaultFilename=mxResources.get("untitledDiagram");var F=c.getExportVariables;c.getExportVariables=function(){var d=F.apply(this,arguments),c=b.getCurrentFile();null!=c&&(d.filename=c.getTitle());d.pagecount=null!=b.pages?b.pages.length:1;d.page=null!=b.currentPage?b.currentPage.getName():"";d.pagenumber=null!=b.pages&&null!=b.currentPage?mxUtils.indexOf(b.pages,
@@ -3627,18 +3631,18 @@ b.currentPage)+1:1;return d};var H=c.getGlobalVariable;c.getGlobalVariable=funct
mxEvent.isPopupTrigger(e))z.apply(this,arguments);else{if(!c.isEnabled()||null!=b&&c.isCellLocked(b.cell))c.customLinkClicked(g),c.getRubberband().reset();mxEvent.consume(e)}};this.editor.getOrCreateFilename=function(){var d=b.defaultFilename,c=b.getCurrentFile();null!=c&&(d=null!=c.getTitle()?c.getTitle():d);return d};var D=this.actions.get("print");D.setEnabled(!mxClient.IS_IOS||!navigator.standalone);D.visible=D.isEnabled();if(!this.editor.chromeless||this.editor.editable)this.keyHandler.bindAction(70,
!0,"findReplace"),this.keyHandler.bindAction(67,!0,"copyStyle",!0),this.keyHandler.bindAction(86,!0,"pasteStyle",!0),this.keyHandler.bindAction(77,!0,"editGeometry",!0),this.keyHandler.bindAction(88,!0,"insertText",!0),this.keyHandler.bindAction(75,!0,"insertRectangle"),this.keyHandler.bindAction(75,!0,"insertEllipse",!0),this.altShiftActions[83]="synchronize",this.installImagePasteHandler(),this.installNativeClipboardHandler();this.spinner=this.createSpinner(null,null,24);Graph.fileSupport&&c.addListener(mxEvent.EDITING_STARTED,
mxUtils.bind(this,function(b){var d=c.cellEditor.text2,e=null;null!=d&&(mxEvent.addListener(d,"dragleave",function(b){null!=e&&(e.parentNode.removeChild(e),e=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(d,"dragover",mxUtils.bind(this,function(b){null==e&&(!mxClient.IS_IE||10<document.documentMode)&&(e=this.highlightElement(d));b.stopPropagation();b.preventDefault()})),mxEvent.addListener(d,"drop",mxUtils.bind(this,function(b){null!=e&&(e.parentNode.removeChild(e),e=null);if(0<
-b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,g,f,l){c.insertImage(b,f,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var e=Math.max(1,
+b.dataTransfer.files.length)this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,function(b,d,e,g,f,k){c.insertImage(b,f,k)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()},mxEvent.isControlDown(b));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")){var d=b.dataTransfer.getData("text/uri-list");/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(d)?this.loadImage(decodeURIComponent(d),mxUtils.bind(this,function(b){var e=Math.max(1,
b.width);b=Math.max(1,b.height);var g=this.maxImageSize,g=Math.min(1,Math.min(g/Math.max(1,e)),g/Math.max(1,b));c.insertImage(decodeURIComponent(d),e*g,b*g)})):document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"))}else 0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")?document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/html")):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&document.execCommand("insertHTML",!1,b.dataTransfer.getData("text/plain"));b.stopPropagation();
b.preventDefault()})))}));this.isSettingsEnabled()&&(D=this.editor.graph.view,D.setUnit(mxSettings.getUnit()),D.addListener("unitChanged",function(b,d){mxSettings.setUnit(d.getProperty("unit"));mxSettings.save()}),this.ruler=!this.canvasSupported||9==document.documentMode||"1"!=urlParams.ruler&&!mxSettings.isRulerOn()||this.editor.isChromelessView()&&!this.editor.editable?null:new mxDualRuler(this,D.unit),this.refresh());if("1"==urlParams.styledev){D=document.getElementById("geFooter");null!=D&&(this.styleInput=
document.createElement("input"),this.styleInput.setAttribute("type","text"),this.styleInput.style.position="absolute",this.styleInput.style.top="14px",this.styleInput.style.left="2px",this.styleInput.style.width="98%",this.styleInput.style.visibility="hidden",this.styleInput.style.opacity="0.9",mxEvent.addListener(this.styleInput,"change",mxUtils.bind(this,function(){this.editor.graph.getModel().setStyle(this.editor.graph.getSelectionCell(),this.styleInput.value)})),D.appendChild(this.styleInput),
this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(b,d){if(0<this.editor.graph.getSelectionCount()){var c=this.editor.graph.getSelectionCell(),c=this.editor.graph.getModel().getStyle(c);this.styleInput.value=c||"";this.styleInput.style.visibility="visible"}else this.styleInput.style.visibility="hidden"})));var N=this.isSelectionAllowed;this.isSelectionAllowed=function(b){return mxEvent.getSource(b)==this.styleInput?!0:N.apply(this,arguments)}}D=document.getElementById("geInfo");
null!=D&&D.parentNode.removeChild(D);if(Graph.fileSupport&&(!this.editor.chromeless||this.editor.editable)){var E=null;mxEvent.addListener(c.container,"dragleave",function(b){c.isEnabled()&&(null!=E&&(E.parentNode.removeChild(E),E=null),b.stopPropagation(),b.preventDefault())});mxEvent.addListener(c.container,"dragover",mxUtils.bind(this,function(b){null==E&&(!mxClient.IS_IE||10<document.documentMode)&&(E=this.highlightElement(c.container));null!=this.sidebar&&this.sidebar.hideTooltip();b.stopPropagation();
-b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=E&&(E.parentNode.removeChild(E),E=null);if(c.isEnabled()){var d=mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=c.view.translate,g=c.view.scale,f=d.x/g-e.x,l=d.y/g-e.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(l=f=null),this.importFiles(b.dataTransfer.files,f,l,this.maxImageSize,null,null,null,
-null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(l=f=0);var k=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,f,l,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var n=null,e=d.getElementsByTagName("img");
-null!=e&&1==e.length?(m=e[0].getAttribute("src"),null==m&&(m=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(n=!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var q=!0,p=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,f,l,!0,n,null,q,mxEvent.isControlDown(b)))});n&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){q=
-b;p()},mxEvent.isControlDown(b)):p()}else null!=k&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(k)?this.loadImage(decodeURIComponent(k),mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",f,l,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+k+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(k,
-f,l,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,l,!0))}}b.stopPropagation();b.preventDefault()}),!1)}c.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var b=this.editor.graph;b.container.addEventListener("paste",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d))try{for(var c=
-d.clipboardData||d.originalEvent.clipboardData,e=!1,g=0;g<c.types.length;g++)if("text/"===c.types[g].substring(0,5)){e=!0;break}if(!e){var f=c.items;for(index in f){var k=f[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,g,f,l){b.insertImage(d,f,l)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()});else{var p=this.editor.graph.getInsertPoint();this.importFiles([k.getAsFile()],
+b.preventDefault()}));mxEvent.addListener(c.container,"drop",mxUtils.bind(this,function(b){null!=E&&(E.parentNode.removeChild(E),E=null);if(c.isEnabled()){var d=mxUtils.convertPoint(c.container,mxEvent.getClientX(b),mxEvent.getClientY(b)),e=c.view.translate,g=c.view.scale,f=d.x/g-e.x,k=d.y/g-e.y;if(0<b.dataTransfer.files.length)mxEvent.isShiftDown(b)?this.openFiles(b.dataTransfer.files,!0):(mxEvent.isAltDown(b)&&(k=f=null),this.importFiles(b.dataTransfer.files,f,k,this.maxImageSize,null,null,null,
+null,mxEvent.isControlDown(b),null,null,mxEvent.isShiftDown(b),b));else{mxEvent.isAltDown(b)&&(k=f=0);var l=0<=mxUtils.indexOf(b.dataTransfer.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):null,d=this.extractGraphModelFromEvent(b,null!=this.pages);if(null!=d)c.setSelectionCells(this.importXml(d,f,k,!0));else if(0<=mxUtils.indexOf(b.dataTransfer.types,"text/html")){var m=b.dataTransfer.getData("text/html"),d=document.createElement("div");d.innerHTML=c.sanitizeHtml(m);var n=null,e=d.getElementsByTagName("img");
+null!=e&&1==e.length?(m=e[0].getAttribute("src"),null==m&&(m=e[0].getAttribute("srcset")),/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(m)||(n=!0)):(e=d.getElementsByTagName("a"),null!=e&&1==e.length?m=e[0].getAttribute("href"):(d=d.getElementsByTagName("pre"),null!=d&&1==d.length&&(m=mxUtils.getTextContent(d[0]))));var p=!0,q=mxUtils.bind(this,function(){c.setSelectionCells(this.insertTextAt(m,f,k,!0,n,null,p,mxEvent.isControlDown(b)))});n&&null!=m&&m.length>this.resampleThreshold?this.confirmImageResize(function(b){p=
+b;q()},mxEvent.isControlDown(b)):q()}else null!=l&&/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(l)?this.loadImage(decodeURIComponent(l),mxUtils.bind(this,function(b){var d=Math.max(1,b.width);b=Math.max(1,b.height);var e=this.maxImageSize,e=Math.min(1,Math.min(e/Math.max(1,d)),e/Math.max(1,b));c.setSelectionCell(c.insertVertex(null,null,"",f,k,d*e,b*e,"shape=image;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;verticalAlign=top;aspect=fixed;imageAspect=0;image="+l+";"))}),mxUtils.bind(this,function(b){c.setSelectionCells(this.insertTextAt(l,
+f,k,!0))})):0<=mxUtils.indexOf(b.dataTransfer.types,"text/plain")&&c.setSelectionCells(this.insertTextAt(b.dataTransfer.getData("text/plain"),f,k,!0))}}b.stopPropagation();b.preventDefault()}),!1)}c.enableFlowAnimation=!0;this.initPages();"1"==urlParams.embed&&this.initializeEmbedMode();this.installSettings()};EditorUi.prototype.installImagePasteHandler=function(){if(!mxClient.IS_IE){var b=this.editor.graph;b.container.addEventListener("paste",mxUtils.bind(this,function(d){if(!mxEvent.isConsumed(d))try{for(var c=
+d.clipboardData||d.originalEvent.clipboardData,e=!1,g=0;g<c.types.length;g++)if("text/"===c.types[g].substring(0,5)){e=!0;break}if(!e){var f=c.items;for(index in f){var k=f[index];if("file"===k.kind){if(b.isEditing())this.importFiles([k.getAsFile()],0,0,this.maxImageSize,function(d,c,e,g,f,k){b.insertImage(d,f,k)},function(){},function(b){return"image/"==b.type.substring(0,6)},function(b){for(var d=0;d<b.length;d++)b[d]()});else{var p=this.editor.graph.getInsertPoint();this.importFiles([k.getAsFile()],
p.x,p.y,this.maxImageSize);mxEvent.consume(d)}break}}}}catch(y){}}),!1)}};EditorUi.prototype.installNativeClipboardHandler=function(){function b(){window.setTimeout(function(){e.innerHTML="&nbsp;";e.focus();document.execCommand("selectAll",!1,null)},0)}var c=this.editor.graph,e=document.createElement("div");e.setAttribute("autocomplete","off");e.setAttribute("autocorrect","off");e.setAttribute("autocapitalize","off");e.setAttribute("spellcheck","false");e.style.textRendering="optimizeSpeed";e.style.fontFamily=
"monospace";e.style.wordBreak="break-all";e.style.background="transparent";e.style.color="transparent";e.style.position="absolute";e.style.whiteSpace="nowrap";e.style.overflow="hidden";e.style.display="block";e.style.fontSize="1";e.style.zIndex="-1";e.style.resize="none";e.style.outline="none";e.style.width="1px";e.style.height="1px";mxUtils.setOpacity(e,0);e.contentEditable=!0;e.innerHTML="&nbsp;";var f=!1;this.keyHandler.bindControlKey(88,null);this.keyHandler.bindControlKey(67,null);this.keyHandler.bindControlKey(86,
null);mxEvent.addListener(document,"keydown",mxUtils.bind(this,function(b){var d=mxEvent.getSource(b);null==c.container||!c.isEnabled()||c.isMouseDown||c.isEditing()||null!=this.dialog||"INPUT"==d.nodeName||"TEXTAREA"==d.nodeName||224!=b.keyCode&&(mxClient.IS_MAC||17!=b.keyCode)&&(!mxClient.IS_MAC||91!=b.keyCode&&93!=b.keyCode)||f||(e.style.left=c.container.scrollLeft+10+"px",e.style.top=c.container.scrollTop+10+"px",c.container.appendChild(e),f=!0,e.focus(),document.execCommand("selectAll",!1,null))}));
@@ -3653,27 +3657,27 @@ EditorUi.prototype.doSetSketchMode=function(b){if(Editor.sketchMode!=b){var d=fu
b.substring(0,5)&&(d=mxResources.get("action"));return d};EditorUi.prototype.handleCustomLink=function(b){if(Graph.isPageLink(b)){var d=b.indexOf(",");if(b=this.getPageById(b.substring(d+1)))this.selectPage(b);else throw Error(mxResources.get("pageNotFound")||"Page not found");}else this.editor.graph.handleCustomLink(b)};EditorUi.prototype.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};EditorUi.prototype.installSettings=function(){if(this.isSettingsEnabled()){Editor.pagesVisible=
mxSettings.settings.pagesVisible;ColorDialog.recentColors=mxSettings.getRecentColors();if(isLocalStorage)try{window.addEventListener("storage",mxUtils.bind(this,function(b){b.key==mxSettings.key&&(mxSettings.load(),ColorDialog.recentColors=mxSettings.getRecentColors(),this.menus.customFonts=mxSettings.getCustomFonts())}),!1)}catch(d){}this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells",[]));this.menus.customFonts=mxSettings.getCustomFonts();this.addListener("customFontsChanged",
mxUtils.bind(this,function(b,c){if("1"!=urlParams["ext-fonts"])mxSettings.setCustomFonts(this.menus.customFonts);else{var d=c.getProperty("customFonts");this.menus.customFonts=d;mxSettings.setCustomFonts(d)}mxSettings.save()}));this.editor.graph.connectionHandler.setCreateTarget(mxSettings.isCreateTarget());this.fireEvent(new mxEventObject("copyConnectChanged"));this.addListener("copyConnectChanged",mxUtils.bind(this,function(b,c){mxSettings.setCreateTarget(this.editor.graph.connectionHandler.isCreateTarget());
-mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.addListener("gridColorChanged",mxUtils.bind(this,function(b,c){mxSettings.setGridColor(this.editor.graph.view.gridColor,
-Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(b,c){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",
-mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(b,c,e){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&this.editor.exportToCanvas(mxUtils.bind(this,function(b,
-d){try{this.spinner.stop();var e=this.createImageDataUri(b,c,"png"),g=parseInt(d.getAttribute("width")),f=parseInt(d.getAttribute("height"));this.writeImageToClipboard(e,g,f,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(y){this.handleError(y)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null!=e?e:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(q){this.handleError(q)}};
-EditorUi.prototype.writeImageToClipboard=function(b,c,e,f){var d=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":d,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+e+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](f)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var e=mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),g=mxUtils.getXml(d.encodeCells(e));
-mxUtils.setTextContent(b,encodeURIComponent(g));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=g,d.pasteCounter=0);b.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var b=null;if(Editor.enableNativeCipboard){var c=this.editor.graph;c.isSelectionEmpty()||(b=mxUtils.sortCells(c.getExportableCells(c.model.getTopmostCells(c.getSelectionCells()))),c=mxUtils.getXml(c.encodeCells(b)),navigator.clipboard.writeText(c))}return b};EditorUi.prototype.pasteXml=
-function(b,c,e,f){var d=this.editor.graph,g=null;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var k=d.pasteCounter*d.gridSize;if(e||this.isCompatibleString(b))g=this.importXml(b,k,k),d.setSelectionCells(g);else if(c&&1==d.getSelectionCount()){k=d.getStartEditingCell(d.getSelectionCell(),f);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==d.getCurrentCellStyle(k)[mxConstants.STYLE_SHAPE])d.setCellStyles(mxConstants.STYLE_IMAGE,b,[k]);else{d.model.beginUpdate();try{d.labelChanged(k,
-b),Graph.isLink(b)&&d.setLinkForCell(k,b)}finally{d.model.endUpdate()}}d.setSelectionCell(k)}else g=d.getInsertPoint(),d.isMouseInsertPoint()&&(k=0,d.lastPasteXml==b&&0<d.pasteCounter&&d.pasteCounter--),g=this.insertTextAt(b,g.x+k,g.y+k,!0),d.setSelectionCells(g);d.isSelectionEmpty()||(d.scrollCellToVisible(d.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell())));return g};EditorUi.prototype.pasteCells=function(b,c,e,f){if(!mxEvent.isConsumed(b)){var d=
-c,g=!1;if(e&&null!=b.clipboardData&&b.clipboardData.getData){var k=b.clipboardData.getData("text/plain"),l=!1;if(null!=k&&0<k.length&&"%3CmxGraphModel%3E"==k.substring(0,18)){var p=decodeURIComponent(k);this.isCompatibleString(p)&&(l=!0,k=p)}l=l?null:b.clipboardData.getData("text/html");null!=l&&0<l.length?(d=this.parseHtmlData(l),g="text/plain"!=d.getAttribute("data-type")):null!=k&&0<k.length&&(d=document.createElement("div"),mxUtils.setTextContent(d,l))}k=d.getElementsByTagName("span");if(null!=
-k&&0<k.length&&"application/vnd.lucid.chart.objects"===k[0].getAttribute("data-lucid-type"))e=k[0].getAttribute("data-lucid-content"),null!=e&&0<e.length&&(this.convertLucidChart(e,mxUtils.bind(this,function(b){var d=this.editor.graph;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var c=d.pasteCounter*d.gridSize;d.setSelectionCells(this.importXml(b,c,c));d.scrollCellToVisible(d.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),mxEvent.consume(b));else{g=
-g?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var q=g.lastIndexOf("%3E");0<=q&&q<g.length-3&&(g=g.substring(0,q+3))}catch(H){}try{k=d.getElementsByTagName("span"),p=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(p)&&(l=!0,g=p)}catch(H){}try{if(null!=g&&0<g.length){this.pasteXml(g,f,l,b);try{mxEvent.consume(b)}catch(H){}}else if(!e){var t=this.editor.graph;t.lastPasteXml=null;t.pasteCounter=
-0}}catch(H){this.handleError(H)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==d&&(!mxClient.IS_IE||10<document.documentMode&&12>document.documentMode)&&(d=
-this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[c],"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<b.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b)):this.openFiles(b.dataTransfer.files,!0);else{var c=this.extractGraphModelFromEvent(b);
-if(null==c){var e=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=e&&(10==document.documentMode||11==document.documentMode?c=e.getData("Text"):(c=null,c=0<=mxUtils.indexOf(e.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(e.types,"text/html")?e.getData("text/html"):null,null!=c&&0<c.length?(e=document.createElement("div"),e.innerHTML=this.editor.graph.sanitizeHtml(c),e=e.getElementsByTagName("img"),0<e.length&&(c=e[0].getAttribute("src"))):0<=mxUtils.indexOf(e.types,
-"text/plain")&&(c=e.getData("text/plain"))),null!=c&&(Editor.isPngDataUrl(c)?(c=Editor.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?window.location.hash="#U"+encodeURIComponent(c):
-window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var d=0,c=0,e,f;if(null==b){f=document.body;var k=document.documentElement;e=(f.clientWidth||k.clientWidth)-3;f=Math.max(f.clientHeight||0,k.clientHeight)-3}else d=b.offsetTop,c=b.offsetLeft,e=b.clientWidth,f=b.clientHeight;k=document.createElement("div");
-k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254, 137, 12)";k.style.pointerEvents="none";k.style.position="absolute";k.style.top=d+"px";k.style.left=c+"px";k.style.width=Math.max(0,e-3)+"px";k.style.height=Math.max(0,f-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(b){b=mxUtils.parseXml(b);var d=this.editor.extractGraphModel(b.documentElement);
-b=[];if(null!=d){var c=new mxCodec(d.ownerDocument),e=new mxGraphModel;c.decode(d,e);d=e.getChildAt(e.getRoot(),0);for(c=0;c<e.getChildCount(d);c++)b.push(e.getChildAt(d,c))}return b};EditorUi.prototype.openFileHandle=function(b,c,e,f,k){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+
-".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,f)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,
-mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(e,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?d(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&(c=c.substring(0,
-c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,f)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
+mxSettings.save()}));this.editor.graph.pageFormat=null!=this.editor.graph.defaultPageFormat?this.editor.graph.defaultPageFormat:mxSettings.getPageFormat();this.addListener("pageFormatChanged",mxUtils.bind(this,function(b,c){mxSettings.setPageFormat(this.editor.graph.pageFormat);mxSettings.save()}));this.editor.graph.view.gridColor=mxSettings.getGridColor(Editor.isDarkMode());this.editor.graph.view.defaultDarkGridColor=mxSettings.getGridColor(!0);this.editor.graph.view.defaultGridColor=mxSettings.getGridColor(!1);
+this.addListener("gridColorChanged",mxUtils.bind(this,function(b,c){mxSettings.setGridColor(this.editor.graph.view.gridColor,Editor.isDarkMode());mxSettings.save()}));if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)this.editor.addListener("autosaveChanged",mxUtils.bind(this,function(b,c){mxSettings.setAutosave(this.editor.autosave);mxSettings.save()})),this.editor.autosave=mxSettings.getAutosave();null!=this.sidebar&&(null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes?(this.sidebar.searchShapes(decodeURIComponent(urlParams["search-shapes"])),
+this.sidebar.showEntries("search")):(this.sidebar.showPalette("search",mxSettings.settings.search),this.editor.chromeless&&!this.editor.editable||!(mxSettings.settings.isNew||8>=parseInt(mxSettings.settings.version||0))||(this.toggleScratchpad(),mxSettings.save())));this.addListener("formatWidthChanged",function(){mxSettings.setFormatWidth(this.formatWidth);mxSettings.save()})}};EditorUi.prototype.copyImage=function(b,c,e){try{null!=navigator.clipboard&&this.spinner.spin(document.body,mxResources.get("exporting"))&&
+this.editor.exportToCanvas(mxUtils.bind(this,function(b,d){try{this.spinner.stop();var e=this.createImageDataUri(b,c,"png"),g=parseInt(d.getAttribute("width")),f=parseInt(d.getAttribute("height"));this.writeImageToClipboard(e,g,f,mxUtils.bind(this,function(b){this.handleError(b)}))}catch(y){this.handleError(y)}}),null,null,null,mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}),null,null,null!=e?e:4,null==this.editor.graph.background||this.editor.graph.background==mxConstants.NONE,
+null,null,null,10,null,null,!1,null,0<b.length?b:null)}catch(q){this.handleError(q)}};EditorUi.prototype.writeImageToClipboard=function(b,c,e,f){var d=this.base64ToBlob(b.substring(b.indexOf(",")+1),"image/png");b=new ClipboardItem({"image/png":d,"text/html":new Blob(['<img src="'+b+'" width="'+c+'" height="'+e+'">'],{type:"text/html"})});navigator.clipboard.write([b])["catch"](f)};EditorUi.prototype.copyCells=function(b,c){var d=this.editor.graph;if(d.isSelectionEmpty())b.innerHTML="";else{var e=
+mxUtils.sortCells(d.model.getTopmostCells(d.getSelectionCells())),g=mxUtils.getXml(d.encodeCells(e));mxUtils.setTextContent(b,encodeURIComponent(g));c?(d.removeCells(e,!1),d.lastPasteXml=null):(d.lastPasteXml=g,d.pasteCounter=0);b.focus();document.execCommand("selectAll",!1,null)}};EditorUi.prototype.copyXml=function(){var b=null;if(Editor.enableNativeCipboard){var c=this.editor.graph;c.isSelectionEmpty()||(b=mxUtils.sortCells(c.getExportableCells(c.model.getTopmostCells(c.getSelectionCells()))),
+c=mxUtils.getXml(c.encodeCells(b)),navigator.clipboard.writeText(c))}return b};EditorUi.prototype.pasteXml=function(b,c,e,f){var d=this.editor.graph,g=null;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var k=d.pasteCounter*d.gridSize;if(e||this.isCompatibleString(b))g=this.importXml(b,k,k),d.setSelectionCells(g);else if(c&&1==d.getSelectionCount()){k=d.getStartEditingCell(d.getSelectionCell(),f);if(/\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(b)&&"image"==d.getCurrentCellStyle(k)[mxConstants.STYLE_SHAPE])d.setCellStyles(mxConstants.STYLE_IMAGE,
+b,[k]);else{d.model.beginUpdate();try{d.labelChanged(k,b),Graph.isLink(b)&&d.setLinkForCell(k,b)}finally{d.model.endUpdate()}}d.setSelectionCell(k)}else g=d.getInsertPoint(),d.isMouseInsertPoint()&&(k=0,d.lastPasteXml==b&&0<d.pasteCounter&&d.pasteCounter--),g=this.insertTextAt(b,g.x+k,g.y+k,!0),d.setSelectionCells(g);d.isSelectionEmpty()||(d.scrollCellToVisible(d.getSelectionCell()),null!=this.hoverIcons&&this.hoverIcons.update(d.view.getState(d.getSelectionCell())));return g};EditorUi.prototype.pasteCells=
+function(b,c,e,f){if(!mxEvent.isConsumed(b)){var d=c,g=!1;if(e&&null!=b.clipboardData&&b.clipboardData.getData){var k=b.clipboardData.getData("text/plain"),l=!1;if(null!=k&&0<k.length&&"%3CmxGraphModel%3E"==k.substring(0,18)){var p=decodeURIComponent(k);this.isCompatibleString(p)&&(l=!0,k=p)}l=l?null:b.clipboardData.getData("text/html");null!=l&&0<l.length?(d=this.parseHtmlData(l),g="text/plain"!=d.getAttribute("data-type")):null!=k&&0<k.length&&(d=document.createElement("div"),mxUtils.setTextContent(d,
+l))}k=d.getElementsByTagName("span");if(null!=k&&0<k.length&&"application/vnd.lucid.chart.objects"===k[0].getAttribute("data-lucid-type"))e=k[0].getAttribute("data-lucid-content"),null!=e&&0<e.length&&(this.convertLucidChart(e,mxUtils.bind(this,function(b){var d=this.editor.graph;d.lastPasteXml==b?d.pasteCounter++:(d.lastPasteXml=b,d.pasteCounter=0);var c=d.pasteCounter*d.gridSize;d.setSelectionCells(this.importXml(b,c,c));d.scrollCellToVisible(d.getSelectionCell())}),mxUtils.bind(this,function(b){this.handleError(b)})),
+mxEvent.consume(b));else{g=g?d.innerHTML:mxUtils.trim(null==d.innerText?mxUtils.getTextContent(d):d.innerText);l=!1;try{var q=g.lastIndexOf("%3E");0<=q&&q<g.length-3&&(g=g.substring(0,q+3))}catch(H){}try{k=d.getElementsByTagName("span"),p=null!=k&&0<k.length?mxUtils.trim(decodeURIComponent(k[0].textContent)):decodeURIComponent(g),this.isCompatibleString(p)&&(l=!0,g=p)}catch(H){}try{if(null!=g&&0<g.length){this.pasteXml(g,f,l,b);try{mxEvent.consume(b)}catch(H){}}else if(!e){var t=this.editor.graph;
+t.lastPasteXml=null;t.pasteCounter=0}}catch(H){this.handleError(H)}}}c.innerHTML="&nbsp;"};EditorUi.prototype.addFileDropHandler=function(b){if(Graph.fileSupport)for(var d=null,c=0;c<b.length;c++)mxEvent.addListener(b[c],"dragleave",function(b){null!=d&&(d.parentNode.removeChild(d),d=null);b.stopPropagation();b.preventDefault()}),mxEvent.addListener(b[c],"dragover",mxUtils.bind(this,function(b){(this.editor.graph.isEnabled()||"1"!=urlParams.embed)&&null==d&&(!mxClient.IS_IE||10<document.documentMode&&
+12>document.documentMode)&&(d=this.highlightElement());b.stopPropagation();b.preventDefault()})),mxEvent.addListener(b[c],"drop",mxUtils.bind(this,function(b){null!=d&&(d.parentNode.removeChild(d),d=null);if(this.editor.graph.isEnabled()||"1"!=urlParams.embed)if(0<b.dataTransfer.files.length)this.hideDialog(),"1"==urlParams.embed?this.importFiles(b.dataTransfer.files,0,0,this.maxImageSize,null,null,null,null,!mxEvent.isControlDown(b)&&!mxEvent.isShiftDown(b)):this.openFiles(b.dataTransfer.files,!0);
+else{var c=this.extractGraphModelFromEvent(b);if(null==c){var e=null!=b.dataTransfer?b.dataTransfer:b.clipboardData;null!=e&&(10==document.documentMode||11==document.documentMode?c=e.getData("Text"):(c=null,c=0<=mxUtils.indexOf(e.types,"text/uri-list")?b.dataTransfer.getData("text/uri-list"):0<=mxUtils.indexOf(e.types,"text/html")?e.getData("text/html"):null,null!=c&&0<c.length?(e=document.createElement("div"),e.innerHTML=this.editor.graph.sanitizeHtml(c),e=e.getElementsByTagName("img"),0<e.length&&
+(c=e[0].getAttribute("src"))):0<=mxUtils.indexOf(e.types,"text/plain")&&(c=e.getData("text/plain"))),null!=c&&(Editor.isPngDataUrl(c)?(c=Editor.extractGraphModelFromPng(c),null!=c&&0<c.length&&this.openLocalFile(c,null,!0)):!this.isOffline()&&this.isRemoteFileFormat(c)?(new mxXmlRequest(OPEN_URL,"format=xml&data="+encodeURIComponent(c))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()&&this.openLocalFile(b.getText(),null,!0)})):/^https?:\/\//.test(c)&&(null==this.getCurrentFile()?
+window.location.hash="#U"+encodeURIComponent(c):window.openWindow((mxClient.IS_CHROMEAPP?EditorUi.drawHost+"/":"https://"+location.host+"/")+window.location.search+"#U"+encodeURIComponent(c)))))}else this.openLocalFile(c,null,!0)}b.stopPropagation();b.preventDefault()}))};EditorUi.prototype.highlightElement=function(b){var d=0,c=0,e,f;if(null==b){f=document.body;var k=document.documentElement;e=(f.clientWidth||k.clientWidth)-3;f=Math.max(f.clientHeight||0,k.clientHeight)-3}else d=b.offsetTop,c=b.offsetLeft,
+e=b.clientWidth,f=b.clientHeight;k=document.createElement("div");k.style.zIndex=mxPopupMenu.prototype.zIndex+2;k.style.border="3px dotted rgb(254, 137, 12)";k.style.pointerEvents="none";k.style.position="absolute";k.style.top=d+"px";k.style.left=c+"px";k.style.width=Math.max(0,e-3)+"px";k.style.height=Math.max(0,f-3)+"px";null!=b&&b.parentNode==this.editor.graph.container?this.editor.graph.container.appendChild(k):document.body.appendChild(k);return k};EditorUi.prototype.stringToCells=function(b){b=
+mxUtils.parseXml(b);var d=this.editor.extractGraphModel(b.documentElement);b=[];if(null!=d){var c=new mxCodec(d.ownerDocument),e=new mxGraphModel;c.decode(d,e);d=e.getChildAt(e.getRoot(),0);for(c=0;c<e.getChildCount(d);c++)b.push(e.getChildAt(d,c))}return b};EditorUi.prototype.openFileHandle=function(b,c,e,f,k){if(null!=c&&0<c.length){!this.useCanvasForExport&&/(\.png)$/i.test(c)?c=c.substring(0,c.length-4)+".drawio":/(\.pdf)$/i.test(c)&&(c=c.substring(0,c.length-4)+".drawio");var d=mxUtils.bind(this,
+function(b){c=0<=c.lastIndexOf(".")?c.substring(0,c.lastIndexOf("."))+".drawio":c+".drawio";if("<mxlibrary"==b.substring(0,10)){null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,c))}catch(y){this.handleError(y,mxResources.get("errorLoadingFile"))}}else this.openLocalFile(b,c,f)});if(/(\.v(dx|sdx?))($|\?)/i.test(c)||/(\.vs(x|sx?))($|\?)/i.test(c))this.importVisio(e,mxUtils.bind(this,function(b){this.spinner.stop();
+d(b)}));else if(/(\.*<graphml )/.test(b))this.importGraphML(b,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}));else if(Graph.fileSupport&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(b,c))this.parseFile(e,mxUtils.bind(this,function(b){4==b.readyState&&(this.spinner.stop(),200<=b.status&&299>=b.status?d(b.responseText):this.handleError({message:mxResources.get(413==b.status?"drawingTooLarge":"invalidOrMissingFile")},mxResources.get("errorLoadingFile")))}));else if(this.isLucidChartData(b))/(\.json)$/i.test(c)&&
+(c=c.substring(0,c.length-5)+".drawio"),this.convertLucidChart(b,mxUtils.bind(this,function(b){this.spinner.stop();this.openLocalFile(b,c,f)}),mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b)}));else if("<mxlibrary"==b.substring(0,10)){this.spinner.stop();null==this.getCurrentFile()&&"1"!=urlParams.embed&&this.openLocalFile(this.emptyDiagramXml,this.defaultFilename,f);try{this.loadLibrary(new LocalLibrary(this,b,e.name))}catch(v){this.handleError(v,mxResources.get("errorLoadingFile"))}}else if(0==
b.indexOf("PK"))this.importZipFile(e,mxUtils.bind(this,function(b){this.spinner.stop();d(b)}),mxUtils.bind(this,function(){this.spinner.stop();this.openLocalFile(b,c,f)}));else{if("image/png"==e.type.substring(0,9))b=this.extractGraphModelFromPng(b);else if("application/pdf"==e.type){var g=Editor.extractGraphModelFromPdf(b);null!=g&&(k=null,f=!0,b=g)}this.spinner.stop();this.openLocalFile(b,c,f,k,null!=k?e:null)}}};EditorUi.prototype.openFiles=function(b,c){if(this.spinner.spin(document.body,mxResources.get("loading")))for(var d=
0;d<b.length;d++)mxUtils.bind(this,function(b){var d=new FileReader;d.onload=mxUtils.bind(this,function(d){try{this.openFileHandle(d.target.result,b.name,b,c)}catch(u){this.handleError(u)}});d.onerror=mxUtils.bind(this,function(b){this.spinner.stop();this.handleError(b);window.openFile=null});"image"!==b.type.substring(0,5)&&"application/pdf"!==b.type||"image/svg"===b.type.substring(0,9)?d.readAsText(b):d.readAsDataURL(b)})(b[d])};EditorUi.prototype.openLocalFile=function(b,c,e,f,k){var d=this.getCurrentFile(),
g=mxUtils.bind(this,function(){window.openFile=null;if(null==c&&null!=this.getCurrentFile()&&this.isDiagramEmpty()){var d=mxUtils.parseXml(b);null!=d&&(this.editor.setGraphXml(d.documentElement),this.editor.graph.selectAll())}else this.fileLoaded(new LocalFile(this,b,c||this.defaultFilename,e,f,k))});if(null!=b&&0<b.length)null==d||!d.isModified()&&(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)?g():(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null!=f)&&null!=d&&d.isModified()?this.confirm(mxResources.get("allChangesLost"),
@@ -3684,59 +3688,59 @@ b?"":"none";this.editor.graph.setEnabled(b);null!=this.ruler&&(this.ruler.hRuler
this.menus.findWindow&&this.menus.findWindow.window.setVisible(!1),null!=this.menus.findReplaceWindow&&this.menus.findReplaceWindow.window.setVisible(!1))};EditorUi.prototype.initializeEmbedMode=function(){this.setGraphEnabled(!1);if((window.opener||window.parent)!=window&&("1"!=urlParams.spin||this.spinner.spin(document.body,mxResources.get("loading")))){var b=!1;this.installMessageHandler(mxUtils.bind(this,function(d,c,e,f){b||(b=!0,this.spinner.stop(),this.addEmbedButtons(),this.setGraphEnabled(!0));
if(null==d||0==d.length)d=this.emptyDiagramXml;this.setCurrentFile(new EmbedFile(this,d,{}));this.mode=App.MODE_EMBED;this.setFileData(d);if(f)try{var g=this.editor.graph;g.setGridEnabled(!1);g.pageVisible=!1;var k=g.model.cells,l;for(l in k){var m=k[l];null!=m&&null!=m.style&&(m.style+=";sketch=1;"+(-1==m.style.indexOf("fontFamily=")||-1<m.style.indexOf("fontFamily=Helvetica;")?"fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;":
""))}}catch(x){console.log(x)}this.editor.isChromelessView()?this.editor.graph.isLightboxView()&&this.lightboxFit():this.showLayersDialog();this.chromelessResize&&this.chromelessResize();this.editor.undoManager.clear();this.editor.modified=null!=e?e:!1;this.updateUi();window.self!==window.top&&window.focus();null!=this.format&&this.format.refresh()}))}};EditorUi.prototype.showLayersDialog=function(){1<this.editor.graph.getModel().getChildCount(this.editor.graph.getModel().getRoot())&&(null==this.actions.layersWindow?
-this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(b,c){null!=b?b.getPublicUrl(c):c(null)};EditorUi.prototype.createLoadMessage=function(b){var d=this.editor.graph;return{event:b,pageVisible:d.pageVisible,translate:d.view.translate,bounds:d.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:d.view.scale,page:d.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(b){var d=this.editor.graph;
-d.isEditing()&&d.stopEditing(!d.isInvokesStopCellEditing());var c=window.opener||window.parent;if(this.editor.modified){var e=d.background;if(null==e||e==mxConstants.NONE)e=this.embedExportBackground;this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),d,null,!0,mxUtils.bind(this,function(d){c.postMessage(JSON.stringify({event:"export",point:this.embedExitPoint,exit:null!=b?!b:!0,data:Editor.createSvgDataUri(d)}),"*")}),null,null,!0,e,1,this.embedExportBorder)}else b||
-c.postMessage(JSON.stringify({event:"exit",point:this.embedExitPoint}),"*");b||(this.diagramContainer.removeAttribute("data-bounds"),Editor.inlineFullscreen=!1,d.model.clear(),this.editor.undoManager.clear(),this.setBackgroundImage(null),this.editor.modified=!1,this.fireEvent(new mxEventObject("editInlineStop")))};EditorUi.prototype.installMessageHandler=function(b){var d=null,c=!1,e=!1,f=null,k=mxUtils.bind(this,function(b,d){this.editor.modified&&"0"!=urlParams.modified?null!=urlParams.modified&&
+this.actions.get("layers").funct():this.actions.layersWindow.window.setVisible(!0))};EditorUi.prototype.getPublicUrl=function(b,c){null!=b?b.getPublicUrl(c):c(null)};EditorUi.prototype.createLoadMessage=function(b){var c=this.editor.graph;return{event:b,pageVisible:c.pageVisible,translate:c.view.translate,bounds:c.getGraphBounds(),currentPage:this.getSelectedPageIndex(),scale:c.view.scale,page:c.view.getBackgroundPageBounds()}};EditorUi.prototype.sendEmbeddedSvgExport=function(b){var c=this.editor.graph;
+c.isEditing()&&c.stopEditing(!c.isInvokesStopCellEditing());var d=window.opener||window.parent;if(this.editor.modified){var e=c.background;if(null==e||e==mxConstants.NONE)e=this.embedExportBackground;this.getEmbeddedSvg(this.getFileData(!0,null,null,null,null,null,null,null,null,!1),c,null,!0,mxUtils.bind(this,function(c){d.postMessage(JSON.stringify({event:"export",point:this.embedExitPoint,exit:null!=b?!b:!0,data:Editor.createSvgDataUri(c)}),"*")}),null,null,!0,e,1,this.embedExportBorder)}else b||
+d.postMessage(JSON.stringify({event:"exit",point:this.embedExitPoint}),"*");b||(this.diagramContainer.removeAttribute("data-bounds"),Editor.inlineFullscreen=!1,c.model.clear(),this.editor.undoManager.clear(),this.setBackgroundImage(null),this.editor.modified=!1,this.fireEvent(new mxEventObject("editInlineStop")))};EditorUi.prototype.installMessageHandler=function(b){var c=null,d=!1,e=!1,f=null,k=mxUtils.bind(this,function(b,c){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(g){if(g.source==(window.opener||window.parent)){var k=g.data,l=null,m=mxUtils.bind(this,function(b){if(null!=b&&"function"===typeof b.charAt&&"<"!=b.charAt(0))try{Editor.isPngDataUrl(b)?b=Editor.extractGraphModelFromPng(b):"data:image/svg+xml;base64,"==b.substring(0,26)?b=atob(b.substring(26)):
"data:image/svg+xml;utf8,"==b.substring(0,24)&&(b=b.substring(24)),null!=b&&("%"==b.charAt(0)?b=decodeURIComponent(b):"<"!=b.charAt(0)&&(b=Graph.decompress(b)))}catch(ra){}return b});if("json"==urlParams.proto){var n=!1;try{k=JSON.parse(k)}catch(ka){k=null}try{if(null==k)return;if("dialog"==k.action){this.showError(null!=k.titleKey?mxResources.get(k.titleKey):k.title,null!=k.messageKey?mxResources.get(k.messageKey):k.message,null!=k.buttonKey?mxResources.get(k.buttonKey):k.button);null!=k.modified&&
(this.editor.modified=k.modified);return}if("layout"==k.action){this.executeLayoutList(k.layouts);return}if("prompt"==k.action){this.spinner.stop();var q=new FilenameDialog(this,k.defaultValue||"",null!=k.okKey?mxResources.get(k.okKey):k.ok,function(b){null!=b?p.postMessage(JSON.stringify({event:"prompt",value:b,message:k}),"*"):p.postMessage(JSON.stringify({event:"prompt-cancel",message:k}),"*")},null!=k.titleKey?mxResources.get(k.titleKey):k.title);this.showDialog(q.container,300,80,!0,!1);q.init();
return}if("draft"==k.action){var t=m(k.xml);this.spinner.stop();q=new DraftDialog(this,mxResources.get("draftFound",[k.name||this.defaultFilename]),t,mxUtils.bind(this,function(){this.hideDialog();p.postMessage(JSON.stringify({event:"draft",result:"edit",message:k}),"*")}),mxUtils.bind(this,function(){this.hideDialog();p.postMessage(JSON.stringify({event:"draft",result:"discard",message:k}),"*")}),k.editKey?mxResources.get(k.editKey):null,k.discardKey?mxResources.get(k.discardKey):null,k.ignore?mxUtils.bind(this,
function(){this.hideDialog();p.postMessage(JSON.stringify({event:"draft",result:"ignore",message:k}),"*")}):null);this.showDialog(q.container,640,480,!0,!1,mxUtils.bind(this,function(b){b&&this.actions.get("exit").funct()}));try{q.init()}catch(ka){p.postMessage(JSON.stringify({event:"draft",error:ka.toString(),message:k}),"*")}return}if("template"==k.action){this.spinner.stop();var u=1==k.enableRecent,v=1==k.enableSearch,C=1==k.enableCustomTemp;if("1"==urlParams.newTempDlg&&!k.templatesOnly&&null!=
-k.callback){var y=this.getCurrentUser(),M=new TemplatesDialog(this,function(b,d,c){b=b||this.emptyDiagramXml;p.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:d,tempUrl:c.url,libs:c.libs,builtIn:null!=c.info&&null!=c.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=y?y.id:null,u?mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getRecentDiagrams",[c],null,b,d)}):null,v?mxUtils.bind(this,function(b,
-d,c,e){this.remoteInvoke("searchDiagrams",[b,e],null,d,c)}):null,mxUtils.bind(this,function(b,d,c){this.remoteInvoke("getFileContent",[b.url],null,d,c)}),null,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(M.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(d,c,e,f){d=d||this.emptyDiagramXml;null!=
-k.callback?p.postMessage(JSON.stringify({event:"template",xml:d,blank:d==this.emptyDiagramXml,name:c,tempUrl:e,libs:f,builtIn:!0,message:k}),"*"):(b(d,g,d!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,v?mxUtils.bind(this,function(b,d){this.remoteInvoke("searchDiagrams",[b,null],null,d,function(){d(null,
-"Network Error!")})}):null,mxUtils.bind(this,function(b,d,c){p.postMessage(JSON.stringify({event:"template",docUrl:b,info:d,name:c}),"*")}),null,null,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==k.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==k.action){var Z=this.getDiagramTextContent();p.postMessage(JSON.stringify({event:"textContent",
-data:Z,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var L=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,L):this.spinner.stop();return}if("exit"==k.action){this.actions.get("exit").funct();
-return}if("viewport"==k.action){null!=k.viewport&&(this.embedViewport=k.viewport);return}if("snapshot"==k.action){this.sendEmbeddedSvgExport(!0);return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var O=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var U=this.editor.graph,G=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();
-var d=this.createLoadMessage("export");d.format=k.format;d.message=k;d.data=b;d.xml=O;p.postMessage(JSON.stringify(d),"*")}),I=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(O)));U!=this.editor.graph&&U.container.parentNode.removeChild(U.container);G(b)}),B=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var ca=mxUtils.bind(this,
-function(){if(null!=this.pages&&this.currentPage.getId()!=B){var b=U.getGlobalVariable;U=this.createTemporaryGraph(U.getStylesheet());for(var d,c=0;c<this.pages.length;c++)if(this.pages[c].getId()==B){d=this.updatePageRoot(this.pages[c]);break}null==d&&(d=this.currentPage);U.getGlobalVariable=function(c){return"page"==c?d.getName():"pagenumber"==c?1:b.apply(this,arguments)};document.body.appendChild(U.container);U.model.setRoot(d.root)}if(null!=k.layerIds){for(var e=U.model,g=e.getChildCells(e.getRoot()),
-f={},c=0;c<k.layerIds.length;c++)f[k.layerIds[c]]=!0;for(c=0;c<g.length;c++)e.setVisible(g[c],f[g[c].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){I(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){I(null)}),null,null,k.scale,k.transparent,k.shadow,null,U,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(O),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ca)},0):ca()):
-ca()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=B?"&pageId="+B:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(O))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?G("data:image/png;base64,"+b.getText()):I(null)}),mxUtils.bind(this,function(){I(null)}))}}else ca=mxUtils.bind(this,function(){var b=
-this.createLoadMessage("export");b.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var d=this.getXmlFileData();b.xml=mxUtils.getXml(d);b.data=this.getFileData(null,null,!0,null,null,null,d);b.format=k.format}else if("html"==k.format)d=this.editor.getGraphXml(),b.data=this.getHtml(d,this.editor.graph),b.xml=mxUtils.getXml(d),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;d=null!=k.background?k.background:this.editor.graph.background;
-d==mxConstants.NONE&&(d=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var c=mxUtils.bind(this,function(d){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(d);p.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(b.xml,this.editor.graph,null,!0,c,null,null,k.embedImages,d,k.scale,
-k.border,k.shadow,k.keepTheme);else if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))this.editor.graph.setEnabled(!1),d=this.editor.graph.getSvg(d,k.scale,k.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||k.shadow,null,k.keepTheme),(this.editor.graph.shadowVisible||k.shadow)&&this.editor.graph.addSvgShadow(d),this.embedFonts(d,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,
-mxUtils.bind(this,function(b){c(mxUtils.getXml(b))})):c(mxUtils.getXml(b))}));return}p.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(c=!0,this.setFileData(k.xml),c=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ca)},0):ca()):ca();return}if("load"==k.action){n=k.toSketch;e=1==k.autosave;this.hideDialog();null!=k.modified&&null==urlParams.modified&&(urlParams.modified=k.modified);null!=k.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=
+k.callback){var y=this.getCurrentUser(),L=new TemplatesDialog(this,function(b,c,d){b=b||this.emptyDiagramXml;p.postMessage(JSON.stringify({event:"template",xml:b,blank:b==this.emptyDiagramXml,name:c,tempUrl:d.url,libs:d.libs,builtIn:null!=d.info&&null!=d.info.custContentId,message:k}),"*")},mxUtils.bind(this,function(){this.actions.get("exit").funct()}),null,null,null!=y?y.id:null,u?mxUtils.bind(this,function(b,c,d){this.remoteInvoke("getRecentDiagrams",[d],null,b,c)}):null,v?mxUtils.bind(this,function(b,
+c,d,e){this.remoteInvoke("searchDiagrams",[b,e],null,c,d)}):null,mxUtils.bind(this,function(b,c,d){this.remoteInvoke("getFileContent",[b.url],null,c,d)}),null,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,!1,!1,!0,!0);this.showDialog(L.container,window.innerWidth,window.innerHeight,!0,!1,null,!1,!0);return}q=new NewDialog(this,!1,k.templatesOnly?!1:null!=k.callback,mxUtils.bind(this,function(c,d,e,f){c=c||this.emptyDiagramXml;null!=
+k.callback?p.postMessage(JSON.stringify({event:"template",xml:c,blank:c==this.emptyDiagramXml,name:d,tempUrl:e,libs:f,builtIn:!0,message:k}),"*"):(b(c,g,c!=this.emptyDiagramXml,k.toSketch),this.editor.modified||this.editor.setStatus(""))}),null,null,null,null,null,null,null,u?mxUtils.bind(this,function(b){this.remoteInvoke("getRecentDiagrams",[null],null,b,function(){b(null,"Network Error!")})}):null,v?mxUtils.bind(this,function(b,c){this.remoteInvoke("searchDiagrams",[b,null],null,c,function(){c(null,
+"Network Error!")})}):null,mxUtils.bind(this,function(b,c,d){p.postMessage(JSON.stringify({event:"template",docUrl:b,info:c,name:d}),"*")}),null,null,C?mxUtils.bind(this,function(b){this.remoteInvoke("getCustomTemplates",null,null,b,function(){b({},0)})}):null,1==k.withoutType);this.showDialog(q.container,620,460,!0,!1,mxUtils.bind(this,function(b){this.sidebar.hideTooltip();b&&this.actions.get("exit").funct()}));q.init();return}if("textContent"==k.action){var Z=this.getDiagramTextContent();p.postMessage(JSON.stringify({event:"textContent",
+data:Z,message:k}),"*");return}if("status"==k.action){null!=k.messageKey?this.editor.setStatus(mxUtils.htmlEntities(mxResources.get(k.messageKey))):null!=k.message&&this.editor.setStatus(mxUtils.htmlEntities(k.message));null!=k.modified&&(this.editor.modified=k.modified);return}if("spinner"==k.action){var M=null!=k.messageKey?mxResources.get(k.messageKey):k.message;null==k.show||k.show?this.spinner.spin(document.body,M):this.spinner.stop();return}if("exit"==k.action){this.actions.get("exit").funct();
+return}if("viewport"==k.action){null!=k.viewport&&(this.embedViewport=k.viewport);return}if("snapshot"==k.action){this.sendEmbeddedSvgExport(!0);return}if("export"==k.action){if("png"==k.format||"xmlpng"==k.format){if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin)){var P=null!=k.xml?k.xml:this.getFileData(!0);this.editor.graph.setEnabled(!1);var U=this.editor.graph,G=mxUtils.bind(this,function(b){this.editor.graph.setEnabled(!0);this.spinner.stop();
+var c=this.createLoadMessage("export");c.format=k.format;c.message=k;c.data=b;c.xml=P;p.postMessage(JSON.stringify(c),"*")}),I=mxUtils.bind(this,function(b){null==b&&(b=Editor.blankImage);"xmlpng"==k.format&&(b=Editor.writeGraphModelToPng(b,"tEXt","mxfile",encodeURIComponent(P)));U!=this.editor.graph&&U.container.parentNode.removeChild(U.container);G(b)}),B=k.pageId||(null!=this.pages?k.currentPage?this.currentPage.getId():this.pages[0].getId():null);if(this.isExportToCanvas()){var ca=mxUtils.bind(this,
+function(){if(null!=this.pages&&this.currentPage.getId()!=B){var b=U.getGlobalVariable;U=this.createTemporaryGraph(U.getStylesheet());for(var c,d=0;d<this.pages.length;d++)if(this.pages[d].getId()==B){c=this.updatePageRoot(this.pages[d]);break}null==c&&(c=this.currentPage);U.getGlobalVariable=function(d){return"page"==d?c.getName():"pagenumber"==d?1:b.apply(this,arguments)};document.body.appendChild(U.container);U.model.setRoot(c.root)}if(null!=k.layerIds){for(var e=U.model,g=e.getChildCells(e.getRoot()),
+f={},d=0;d<k.layerIds.length;d++)f[k.layerIds[d]]=!0;for(d=0;d<g.length;d++)e.setVisible(g[d],f[g[d].id]||!1)}this.editor.exportToCanvas(mxUtils.bind(this,function(b){I(b.toDataURL("image/png"))}),k.width,null,k.background,mxUtils.bind(this,function(){I(null)}),null,null,k.scale,k.transparent,k.shadow,null,U,k.border,null,k.grid,k.keepTheme)});null!=k.xml&&0<k.xml.length?(d=!0,this.setFileData(P),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ca)},0):ca()):
+ca()}else(new mxXmlRequest(EXPORT_URL,"format=png&embedXml="+("xmlpng"==k.format?"1":"0")+(null!=B?"&pageId="+B:"")+(null!=k.layerIds&&0<k.layerIds.length?"&extras="+encodeURIComponent(JSON.stringify({layerIds:k.layerIds})):"")+(null!=k.scale?"&scale="+k.scale:"")+"&base64=1&xml="+encodeURIComponent(P))).send(mxUtils.bind(this,function(b){200<=b.getStatus()&&299>=b.getStatus()?G("data:image/png;base64,"+b.getText()):I(null)}),mxUtils.bind(this,function(){I(null)}))}}else ca=mxUtils.bind(this,function(){var b=
+this.createLoadMessage("export");b.message=k;if("html2"==k.format||"html"==k.format&&("0"!=urlParams.pages||null!=this.pages&&1<this.pages.length)){var c=this.getXmlFileData();b.xml=mxUtils.getXml(c);b.data=this.getFileData(null,null,!0,null,null,null,c);b.format=k.format}else if("html"==k.format)c=this.editor.getGraphXml(),b.data=this.getHtml(c,this.editor.graph),b.xml=mxUtils.getXml(c),b.format=k.format;else{mxSvgCanvas2D.prototype.foAltText=null;c=null!=k.background?k.background:this.editor.graph.background;
+c==mxConstants.NONE&&(c=null);b.xml=this.getFileData(!0,null,null,null,null,null,null,null,null,!1);b.format="svg";var d=mxUtils.bind(this,function(c){this.editor.graph.setEnabled(!0);this.spinner.stop();b.data=Editor.createSvgDataUri(c);p.postMessage(JSON.stringify(b),"*")});if("xmlsvg"==k.format)(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))&&this.getEmbeddedSvg(b.xml,this.editor.graph,null,!0,d,null,null,k.embedImages,c,k.scale,
+k.border,k.shadow,k.keepTheme);else if(null==k.spin&&null==k.spinKey||this.spinner.spin(document.body,null!=k.spinKey?mxResources.get(k.spinKey):k.spin))this.editor.graph.setEnabled(!1),c=this.editor.graph.getSvg(c,k.scale,k.border,null,null,null,null,null,null,this.editor.graph.shadowVisible||k.shadow,null,k.keepTheme),(this.editor.graph.shadowVisible||k.shadow)&&this.editor.graph.addSvgShadow(c),this.embedFonts(c,mxUtils.bind(this,function(b){k.embedImages||null==k.embedImages?this.editor.convertImages(b,
+mxUtils.bind(this,function(b){d(mxUtils.getXml(b))})):d(mxUtils.getXml(b))}));return}p.postMessage(JSON.stringify(b),"*")}),null!=k.xml&&0<k.xml.length?(d=!0,this.setFileData(k.xml),d=!1,this.editor.graph.mathEnabled?window.setTimeout(function(){window.MathJax.Hub.Queue(ca)},0):ca()):ca();return}if("load"==k.action){n=k.toSketch;e=1==k.autosave;this.hideDialog();null!=k.modified&&null==urlParams.modified&&(urlParams.modified=k.modified);null!=k.saveAndExit&&null==urlParams.saveAndExit&&(urlParams.saveAndExit=
k.saveAndExit);null!=k.noSaveBtn&&null==urlParams.noSaveBtn&&(urlParams.noSaveBtn=k.noSaveBtn);if(null!=k.rough){var S=Editor.sketchMode;this.doSetSketchMode(k.rough);S!=Editor.sketchMode&&this.fireEvent(new mxEventObject("sketchModeChanged"))}null!=k.dark&&(S=Editor.darkMode,this.doSetDarkMode(k.dark),S!=Editor.darkMode&&this.fireEvent(new mxEventObject("darkModeChanged")));null!=k.border&&(this.embedExportBorder=k.border);null!=k.background&&(this.embedExportBackground=k.background);null!=k.viewport&&
-(this.embedViewport=k.viewport);this.embedExitPoint=null;if(null!=k.rect){var Q=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";l=mxUtils.bind(this,function(){var b=this.editor.graph,d=b.maxFitScale;
-b.maxFitScale=k.maxFitScale;b.fit(2*Q);b.maxFitScale=d;b.container.scrollTop-=2*Q;b.container.scrollLeft-=2*Q;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=
+(this.embedViewport=k.viewport);this.embedExitPoint=null;if(null!=k.rect){var Q=this.embedExportBorder;this.diagramContainer.style.border="2px solid #295fcc";this.diagramContainer.style.top=k.rect.top+"px";this.diagramContainer.style.left=k.rect.left+"px";this.diagramContainer.style.height=k.rect.height+"px";this.diagramContainer.style.width=k.rect.width+"px";this.diagramContainer.style.bottom="";this.diagramContainer.style.right="";l=mxUtils.bind(this,function(){var b=this.editor.graph,c=b.maxFitScale;
+b.maxFitScale=k.maxFitScale;b.fit(2*Q);b.maxFitScale=c;b.container.scrollTop-=2*Q;b.container.scrollLeft-=2*Q;this.fireEvent(new mxEventObject("editInlineStart","data",[k]))})}null!=k.noExitBtn&&null==urlParams.noExitBtn&&(urlParams.noExitBtn=k.noExitBtn);null!=k.title&&null!=this.buttonContainer&&(t=document.createElement("span"),mxUtils.write(t,k.title),null!=this.embedFilenameSpan&&this.embedFilenameSpan.parentNode.removeChild(this.embedFilenameSpan),this.buttonContainer.appendChild(t),this.embedFilenameSpan=
t);try{k.libs&&this.sidebar.showEntries(k.libs)}catch(ka){}k=null!=k.xmlpng?this.extractGraphModelFromPng(k.xmlpng):null!=k.descriptor?k.descriptor:k.xml}else{if("merge"==k.action){var V=this.getCurrentFile();null!=V&&(t=m(k.xml),null!=t&&""!=t&&V.mergeFile(new LocalFile(this,t),function(){p.postMessage(JSON.stringify({event:"merge",message:k}),"*")},function(b){p.postMessage(JSON.stringify({event:"merge",message:k,error:b}),"*")}))}else"remoteInvokeReady"==k.action?this.handleRemoteInvokeReady(p):
-"remoteInvoke"==k.action?this.handleRemoteInvoke(k,g.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):p.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(ka){this.handleError(ka)}}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())}),fa=mxUtils.bind(this,function(g,k){c=!0;try{b(g,k,null,n)}catch(ja){this.handleError(ja)}c=
-!1;null!=urlParams.modified&&this.editor.setStatus("");f=oa();e&&null==d&&(d=mxUtils.bind(this,function(b,d){var e=oa();if(e!=f&&!c){var g=this.createLoadMessage("autosave");g.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}f=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,d),this.editor.graph.addListener("gridSizeChanged",d),this.editor.graph.addListener("shadowVisibleChanged",d),this.addListener("pageFormatChanged",d),this.addListener("pageScaleChanged",d),this.addListener("backgroundColorChanged",
-d),this.addListener("backgroundImageChanged",d),this.addListener("foldingEnabledChanged",d),this.addListener("mathEnabledChanged",d),this.addListener("gridEnabledChanged",d),this.addListener("guidesEnabledChanged",d),this.addListener("pageViewChanged",d));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var m=this.createLoadMessage("load");m.xml=g;p.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,
+"remoteInvoke"==k.action?this.handleRemoteInvoke(k,g.origin):"remoteInvokeResponse"==k.action?this.handleRemoteInvokeResponse(k):p.postMessage(JSON.stringify({error:"unknownMessage",data:JSON.stringify(k)}),"*");return}}catch(ka){this.handleError(ka)}}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())}),fa=mxUtils.bind(this,function(g,k){d=!0;try{b(g,k,null,n)}catch(ja){this.handleError(ja)}d=
+!1;null!=urlParams.modified&&this.editor.setStatus("");f=oa();e&&null==c&&(c=mxUtils.bind(this,function(b,c){var e=oa();if(e!=f&&!d){var g=this.createLoadMessage("autosave");g.xml=e;(window.opener||window.parent).postMessage(JSON.stringify(g),"*")}f=e}),this.editor.graph.model.addListener(mxEvent.CHANGE,c),this.editor.graph.addListener("gridSizeChanged",c),this.editor.graph.addListener("shadowVisibleChanged",c),this.addListener("pageFormatChanged",c),this.addListener("pageScaleChanged",c),this.addListener("backgroundColorChanged",
+c),this.addListener("backgroundImageChanged",c),this.addListener("foldingEnabledChanged",c),this.addListener("mathEnabledChanged",c),this.addListener("gridEnabledChanged",c),this.addListener("guidesEnabledChanged",c),this.addListener("pageViewChanged",c));if("1"==urlParams.returnbounds||"json"==urlParams.proto){var m=this.createLoadMessage("load");m.xml=g;p.postMessage(JSON.stringify(m),"*")}null!=l&&l()});null!=k&&"function"===typeof k.substring&&"data:application/vnd.visio;base64,"==k.substring(0,
34)?(m="0M8R4KGxGuE"==k.substring(34,45)?"raw.vsd":"raw.vsdx",this.importVisio(this.base64ToBlob(k.substring(k.indexOf(",")+1)),function(b){fa(b,g)},mxUtils.bind(this,function(b){this.handleError(b)}),m)):null!=k&&"function"===typeof k.substring&&!this.isOffline()&&(new XMLHttpRequest).upload&&this.isRemoteFileFormat(k,"")?this.parseFile(new Blob([k],{type:"application/octet-stream"}),mxUtils.bind(this,function(b){4==b.readyState&&200<=b.status&&299>=b.status&&"<mxGraphModel"==b.responseText.substring(0,
13)&&fa(b.responseText,g)}),""):null!=k&&"function"===typeof k.substring&&this.isLucidChartData(k)?this.convertLucidChart(k,mxUtils.bind(this,function(b){fa(b)}),mxUtils.bind(this,function(b){this.handleError(b)})):null==k||"object"!==typeof k||null==k.format||null==k.data&&null==k.url?(k=m(k),fa(k,g)):this.loadDescriptor(k,mxUtils.bind(this,function(b){fa(oa(),g)}),mxUtils.bind(this,function(b){this.handleError(b,mxResources.get("errorLoadingFile"))}))}}));var p=window.opener||window.parent,k="json"==
-urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";p.postMessage(k,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,d,c){t.apply(this,arguments);p.postMessage(JSON.stringify({event:"openLink",href:b,target:d,allowOpener:c}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop=
+urlParams.proto?JSON.stringify({event:"init"}):urlParams.ready||"ready";p.postMessage(k,"*");if("json"==urlParams.proto){var t=this.editor.graph.openLink;this.editor.graph.openLink=function(b,c,d){t.apply(this,arguments);p.postMessage(JSON.stringify({event:"openLink",href:b,target:c,allowOpener:d}),"*")}}};EditorUi.prototype.addEmbedButtons=function(){if(null!=this.menubar&&"1"!=urlParams.embedInline){var b=document.createElement("div");b.style.display="inline-block";b.style.position="absolute";b.style.paddingTop=
"atlas"==uiTheme||"1"==urlParams.atlas?"2px":"0px";b.style.paddingLeft="8px";b.style.paddingBottom="2px";var c=document.createElement("button");c.className="geBigButton";var e=c;if("1"==urlParams.noSaveBtn){if("0"!=urlParams.saveAndExit){var f="1"==urlParams.publishClose?mxResources.get("publish"):mxResources.get("saveAndExit");mxUtils.write(c,f);c.setAttribute("title",f);mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()}));b.appendChild(c)}}else mxUtils.write(c,
mxResources.get("save")),c.setAttribute("title",mxResources.get("save")+" ("+Editor.ctrlKey+"+S)"),mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("save").funct()})),b.appendChild(c),"1"==urlParams.saveAndExit&&(c=document.createElement("a"),mxUtils.write(c,mxResources.get("saveAndExit")),c.setAttribute("title",mxResources.get("saveAndExit")),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("saveAndExit").funct()})),
b.appendChild(c),e=c);"1"!=urlParams.noExitBtn&&(c=document.createElement("a"),e="1"==urlParams.publishClose?mxResources.get("close"):mxResources.get("exit"),mxUtils.write(c,e),c.setAttribute("title",e),c.className="geBigButton geBigStandardButton",c.style.marginLeft="6px",mxEvent.addListener(c,"click",mxUtils.bind(this,function(){this.actions.get("exit").funct()})),b.appendChild(c),e=c);e.style.marginRight="20px";this.toolbar.container.appendChild(b);this.toolbar.staticElements.push(b);b.style.right=
"atlas"==uiTheme||"1"==urlParams.atlas?"42px":"52px"}};EditorUi.prototype.showImportCsvDialog=function(){null==this.importCsvDialog&&(this.importCsvDialog=new TextareaDialog(this,mxResources.get("csv")+":",Editor.defaultCsvValue,mxUtils.bind(this,function(b){this.importCsv(b)}),null,null,620,430,null,!0,!0,mxResources.get("import"),this.isOffline()?null:"https://drawio-app.com/import-from-csv-to-drawio/"));this.showDialog(this.importCsvDialog.container,640,520,!0,!0,null,null,null,null,!0);this.importCsvDialog.init()};
EditorUi.prototype.executeLayoutList=function(b,c){for(var d=this.editor.graph,e=d.getSelectionCells(),g=0;g<b.length;g++){var f=new window[b[g].layout](d);if(null!=b[g].config)for(var k in b[g].config)f[k]=b[g].config[k];this.executeLayout(function(){f.execute(d.getDefaultParent(),0==e.length?null:e)},g==b.length-1,c)}};EditorUi.prototype.importCsv=function(b,c){try{var d=b.split("\n"),e=[],g=[],f=[],k={};if(0<d.length){var p={},t=null,x=null,F=null,H=null,z=null,D=null,N="whiteSpace=wrap;html=1;",
-E=null,J=null,C="",K="auto",M="auto",Z=null,L=null,O=40,U=40,G=100,I=0,B=this.editor.graph;B.getGraphBounds();for(var ca=function(){null!=c?c(pa):(B.setSelectionCells(pa),B.scrollCellToVisible(B.getSelectionCell()))},S=B.getFreeInsertPoint(),Q=S.x,V=S.y,S=V,oa=null,fa="auto",J=null,ka=[],ra=null,la=null,ja=0;ja<d.length&&"#"==d[ja].charAt(0);){b=d[ja];for(ja++;ja<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ja].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ja].substring(1)),ja++;if("#"!=b.charAt(1)){var aa=
+E=null,J=null,C="",K="auto",L="auto",Z=null,M=null,P=40,U=40,G=100,I=0,B=this.editor.graph;B.getGraphBounds();for(var ca=function(){null!=c?c(pa):(B.setSelectionCells(pa),B.scrollCellToVisible(B.getSelectionCell()))},S=B.getFreeInsertPoint(),Q=S.x,V=S.y,S=V,oa=null,fa="auto",J=null,ka=[],ra=null,la=null,ja=0;ja<d.length&&"#"==d[ja].charAt(0);){b=d[ja];for(ja++;ja<d.length&&"\\"==b.charAt(b.length-1)&&"#"==d[ja].charAt(0);)b=b.substring(0,b.length-1)+mxUtils.trim(d[ja].substring(1)),ja++;if("#"!=b.charAt(1)){var aa=
b.indexOf(":");if(0<aa){var ba=mxUtils.trim(b.substring(1,aa)),R=mxUtils.trim(b.substring(aa+1));"label"==ba?oa=B.sanitizeHtml(R):"labelname"==ba&&0<R.length&&"-"!=R?z=R:"labels"==ba&&0<R.length&&"-"!=R?D=JSON.parse(R):"style"==ba?x=R:"parentstyle"==ba?N=R:"stylename"==ba&&0<R.length&&"-"!=R?H=R:"styles"==ba&&0<R.length&&"-"!=R?F=JSON.parse(R):"vars"==ba&&0<R.length&&"-"!=R?t=JSON.parse(R):"identity"==ba&&0<R.length&&"-"!=R?E=R:"parent"==ba&&0<R.length&&"-"!=R?J=R:"namespace"==ba&&0<R.length&&"-"!=
-R?C=R:"width"==ba?K=R:"height"==ba?M=R:"left"==ba&&0<R.length?Z=R:"top"==ba&&0<R.length?L=R:"ignore"==ba?la=R.split(","):"connect"==ba?ka.push(JSON.parse(R)):"link"==ba?ra=R:"padding"==ba?I=parseFloat(R):"edgespacing"==ba?O=parseFloat(R):"nodespacing"==ba?U=parseFloat(R):"levelspacing"==ba?G=parseFloat(R):"layout"==ba&&(fa=R)}}}if(null==d[ja])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ja]),ba=aa=null,R=[],W=0;W<sa.length;W++)E==sa[W]&&(aa=W),J==sa[W]&&
+R?C=R:"width"==ba?K=R:"height"==ba?L=R:"left"==ba&&0<R.length?Z=R:"top"==ba&&0<R.length?M=R:"ignore"==ba?la=R.split(","):"connect"==ba?ka.push(JSON.parse(R)):"link"==ba?ra=R:"padding"==ba?I=parseFloat(R):"edgespacing"==ba?P=parseFloat(R):"nodespacing"==ba?U=parseFloat(R):"levelspacing"==ba?G=parseFloat(R):"layout"==ba&&(fa=R)}}}if(null==d[ja])throw Error(mxResources.get("invalidOrMissingFile"));for(var sa=this.editor.csvToArray(d[ja]),ba=aa=null,R=[],W=0;W<sa.length;W++)E==sa[W]&&(aa=W),J==sa[W]&&
(ba=W),R.push(mxUtils.trim(sa[W]).replace(/[^a-z0-9]+/ig,"_").replace(/^\d+/,"").replace(/_+$/,""));null==oa&&(oa="%"+R[0]+"%");if(null!=ka)for(var X=0;X<ka.length;X++)null==p[ka[X].to]&&(p[ka[X].to]={});E=[];for(W=ja+1;W<d.length;W++){var ma=this.editor.csvToArray(d[W]);if(null==ma){var qa=40<d[W].length?d[W].substring(0,40)+"...":d[W];throw Error(qa+" ("+W+"):\n"+mxResources.get("containsValidationErrors"));}0<ma.length&&E.push(ma)}B.model.beginUpdate();try{for(W=0;W<E.length;W++){var ma=E[W],T=
null,ia=null!=aa?C+ma[aa]:null;null!=ia&&(T=B.model.getCell(ia));var d=null!=T,da=new mxCell(oa,new mxGeometry(Q,S,0,0),x||"whiteSpace=wrap;html=1;");da.vertex=!0;da.id=ia;for(var na=0;na<ma.length;na++)B.setAttributeForCell(da,R[na],ma[na]);if(null!=z&&null!=D){var ha=D[da.getAttribute(z)];null!=ha&&B.labelChanged(da,ha)}if(null!=H&&null!=F){var ua=F[da.getAttribute(H)];null!=ua&&(da.style=ua)}B.setAttributeForCell(da,"placeholders","1");da.style=B.replacePlaceholders(da,da.style,t);d?(B.model.setValue(T,
-da.value),B.model.setStyle(T,da.style),0>mxUtils.indexOf(f,T)&&f.push(T),B.fireEvent(new mxEventObject("cellsInserted","cells",[T]))):B.fireEvent(new mxEventObject("cellsInserted","cells",[da]));T=da;if(!d)for(X=0;X<ka.length;X++)p[ka[X].to][T.getAttribute(ka[X].to)]=T;null!=ra&&"link"!=ra&&(B.setLinkForCell(T,T.getAttribute(ra)),B.setAttributeForCell(T,ra,null));var P=this.editor.graph.getPreferredSizeForCell(T),J=null!=ba?B.model.getCell(C+ma[ba]):null;if(T.vertex){qa=null!=J?0:Q;ja=null!=J?0:V;
-null!=Z&&null!=T.getAttribute(Z)&&(T.geometry.x=qa+parseFloat(T.getAttribute(Z)));null!=L&&null!=T.getAttribute(L)&&(T.geometry.y=ja+parseFloat(T.getAttribute(L)));var ea="@"==K.charAt(0)?T.getAttribute(K.substring(1)):null;T.geometry.width=null!=ea&&"auto"!=ea?parseFloat(T.getAttribute(K.substring(1))):"auto"==K||"auto"==ea?P.width+I:parseFloat(K);var ta="@"==M.charAt(0)?T.getAttribute(M.substring(1)):null;T.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==M||"auto"==ta?P.height+I:parseFloat(M);
-S+=T.geometry.height+U}d?(null==k[ia]&&(k[ia]=[]),k[ia].push(T)):(e.push(T),null!=J?(J.style=B.replacePlaceholders(J,N,t),B.addCell(T,J),g.push(J)):f.push(B.addCell(T)))}for(W=0;W<g.length;W++)ea="@"==K.charAt(0)?g[W].getAttribute(K.substring(1)):null,ta="@"==M.charAt(0)?g[W].getAttribute(M.substring(1)):null,"auto"!=K&&"auto"!=ea||"auto"!=M&&"auto"!=ta||B.updateGroupBounds([g[W]],I,!0);for(var ya=f.slice(),pa=f.slice(),X=0;X<ka.length;X++)for(var xa=ka[X],W=0;W<e.length;W++){var T=e[W],za=mxUtils.bind(this,
+da.value),B.model.setStyle(T,da.style),0>mxUtils.indexOf(f,T)&&f.push(T),B.fireEvent(new mxEventObject("cellsInserted","cells",[T]))):B.fireEvent(new mxEventObject("cellsInserted","cells",[da]));T=da;if(!d)for(X=0;X<ka.length;X++)p[ka[X].to][T.getAttribute(ka[X].to)]=T;null!=ra&&"link"!=ra&&(B.setLinkForCell(T,T.getAttribute(ra)),B.setAttributeForCell(T,ra,null));var O=this.editor.graph.getPreferredSizeForCell(T),J=null!=ba?B.model.getCell(C+ma[ba]):null;if(T.vertex){qa=null!=J?0:Q;ja=null!=J?0:V;
+null!=Z&&null!=T.getAttribute(Z)&&(T.geometry.x=qa+parseFloat(T.getAttribute(Z)));null!=M&&null!=T.getAttribute(M)&&(T.geometry.y=ja+parseFloat(T.getAttribute(M)));var ea="@"==K.charAt(0)?T.getAttribute(K.substring(1)):null;T.geometry.width=null!=ea&&"auto"!=ea?parseFloat(T.getAttribute(K.substring(1))):"auto"==K||"auto"==ea?O.width+I:parseFloat(K);var ta="@"==L.charAt(0)?T.getAttribute(L.substring(1)):null;T.geometry.height=null!=ta&&"auto"!=ta?parseFloat(ta):"auto"==L||"auto"==ta?O.height+I:parseFloat(L);
+S+=T.geometry.height+U}d?(null==k[ia]&&(k[ia]=[]),k[ia].push(T)):(e.push(T),null!=J?(J.style=B.replacePlaceholders(J,N,t),B.addCell(T,J),g.push(J)):f.push(B.addCell(T)))}for(W=0;W<g.length;W++)ea="@"==K.charAt(0)?g[W].getAttribute(K.substring(1)):null,ta="@"==L.charAt(0)?g[W].getAttribute(L.substring(1)):null,"auto"!=K&&"auto"!=ea||"auto"!=L&&"auto"!=ta||B.updateGroupBounds([g[W]],I,!0);for(var ya=f.slice(),pa=f.slice(),X=0;X<ka.length;X++)for(var xa=ka[X],W=0;W<e.length;W++){var T=e[W],za=mxUtils.bind(this,
function(b,c,d){var e=c.getAttribute(d.from);if(null!=e&&""!=e)for(var e=e.split(","),g=0;g<e.length;g++){var f=p[d.to][e[g]];if(null!=f){var k=d.label;null!=d.fromlabel&&(k=(c.getAttribute(d.fromlabel)||"")+(k||""));null!=d.sourcelabel&&(k=B.replacePlaceholders(c,d.sourcelabel,t)+(k||""));null!=d.tolabel&&(k=(k||"")+(f.getAttribute(d.tolabel)||""));null!=d.targetlabel&&(k=(k||"")+B.replacePlaceholders(f,d.targetlabel,t));var l="target"==d.placeholders==!d.invert?f:b,l=null!=d.style?B.replacePlaceholders(l,
d.style,t):B.createCurrentEdgeStyle(),k=B.insertEdge(null,null,k||"",d.invert?f:b,d.invert?b:f,l);if(null!=d.labels)for(l=0;l<d.labels.length;l++){var m=d.labels[l],n=new mxCell(m.label||l,new mxGeometry(null!=m.x?m.x:0,null!=m.y?m.y:0,0,0),"resizable=0;html=1;");n.vertex=!0;n.connectable=!1;n.geometry.relative=!0;null!=m.placeholders&&(n.value=B.replacePlaceholders("target"==m.placeholders==!d.invert?f:b,n.value,t));if(null!=m.dx||null!=m.dy)n.geometry.offset=new mxPoint(null!=m.dx?m.dx:0,null!=
-m.dy?m.dy:0);k.insert(n)}pa.push(k);mxUtils.remove(d.invert?b:f,ya)}}});za(T,T,xa);if(null!=k[T.id])for(na=0;na<k[T.id].length;na++)za(T,k[T.id][na],xa)}if(null!=la)for(W=0;W<e.length;W++)for(T=e[W],na=0;na<la.length;na++)B.setAttributeForCell(T,mxUtils.trim(la[na]),null);if(0<f.length){var Ba=new mxParallelEdgeLayout(B);Ba.spacing=O;Ba.checkOverlap=!0;var Ea=function(){0<Ba.spacing&&Ba.execute(B.getDefaultParent());for(var b=0;b<f.length;b++){var d=B.getCellGeometry(f[b]);d.x=Math.round(B.snap(d.x));
-d.y=Math.round(B.snap(d.y));"auto"==K&&(d.width=Math.round(B.snap(d.width)));"auto"==M&&(d.height=Math.round(B.snap(d.height)))}};if("["==fa.charAt(0)){var Ja=ca;B.view.validate();this.executeLayoutList(JSON.parse(fa),function(){Ea();Ja()});ca=null}else if("circle"==fa){var Aa=new mxCircleLayout(B);Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Ka=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Ka.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){Aa.execute(B.getDefaultParent());
+m.dy?m.dy:0);k.insert(n)}pa.push(k);mxUtils.remove(d.invert?b:f,ya)}}});za(T,T,xa);if(null!=k[T.id])for(na=0;na<k[T.id].length;na++)za(T,k[T.id][na],xa)}if(null!=la)for(W=0;W<e.length;W++)for(T=e[W],na=0;na<la.length;na++)B.setAttributeForCell(T,mxUtils.trim(la[na]),null);if(0<f.length){var Ba=new mxParallelEdgeLayout(B);Ba.spacing=P;Ba.checkOverlap=!0;var Ea=function(){0<Ba.spacing&&Ba.execute(B.getDefaultParent());for(var b=0;b<f.length;b++){var c=B.getCellGeometry(f[b]);c.x=Math.round(B.snap(c.x));
+c.y=Math.round(B.snap(c.y));"auto"==K&&(c.width=Math.round(B.snap(c.width)));"auto"==L&&(c.height=Math.round(B.snap(c.height)))}};if("["==fa.charAt(0)){var Ja=ca;B.view.validate();this.executeLayoutList(JSON.parse(fa),function(){Ea();Ja()});ca=null}else if("circle"==fa){var Aa=new mxCircleLayout(B);Aa.disableEdgeStyle=!1;Aa.resetEdges=!1;var Ka=Aa.isVertexIgnored;Aa.isVertexIgnored=function(b){return Ka.apply(this,arguments)||0>mxUtils.indexOf(f,b)};this.executeLayout(function(){Aa.execute(B.getDefaultParent());
Ea()},!0,ca);ca=null}else if("horizontaltree"==fa||"verticaltree"==fa||"auto"==fa&&pa.length==2*f.length-1&&1==ya.length){B.view.validate();var Ca=new mxCompactTreeLayout(B,"horizontaltree"==fa);Ca.levelDistance=U;Ca.edgeRouting=!1;Ca.resetEdges=!1;this.executeLayout(function(){Ca.execute(B.getDefaultParent(),0<ya.length?ya[0]:null)},!0,ca);ca=null}else if("horizontalflow"==fa||"verticalflow"==fa||"auto"==fa&&1==ya.length){B.view.validate();var wa=new mxHierarchicalLayout(B,"horizontalflow"==fa?mxConstants.DIRECTION_WEST:
-mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=U;wa.parallelEdgeSpacing=O;wa.interRankCellSpacing=G;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(B.getDefaultParent(),pa);B.moveCells(pa,Q,V)},!0,ca);ca=null}else if("organic"==fa||"auto"==fa&&pa.length>f.length){B.view.validate();var Y=new mxFastOrganicLayout(B);Y.forceConstant=3*U;Y.disableEdgeStyle=!1;Y.resetEdges=!1;var Fa=Y.isVertexIgnored;Y.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(f,b)};
-this.executeLayout(function(){Y.execute(B.getDefaultParent());Ea()},!0,ca);ca=null}}this.hideDialog()}finally{B.model.endUpdate()}null!=ca&&ca()}}catch(Na){this.handleError(Na)}};EditorUi.prototype.getSearch=function(b){var d="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var c="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(d+=c+e+"="+urlParams[e],c="&")}else d=window.location.search;return d};EditorUi.prototype.getUrl=function(b){b=
-null!=b?b:window.location.pathname;var d=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var c="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(c,e)&&(b=0==d?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],d++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,f,k){b=new LinkDialog(this,b,c,e,!0,f,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=
+mxConstants.DIRECTION_NORTH);wa.intraCellSpacing=U;wa.parallelEdgeSpacing=P;wa.interRankCellSpacing=G;wa.disableEdgeStyle=!1;this.executeLayout(function(){wa.execute(B.getDefaultParent(),pa);B.moveCells(pa,Q,V)},!0,ca);ca=null}else if("organic"==fa||"auto"==fa&&pa.length>f.length){B.view.validate();var Y=new mxFastOrganicLayout(B);Y.forceConstant=3*U;Y.disableEdgeStyle=!1;Y.resetEdges=!1;var Fa=Y.isVertexIgnored;Y.isVertexIgnored=function(b){return Fa.apply(this,arguments)||0>mxUtils.indexOf(f,b)};
+this.executeLayout(function(){Y.execute(B.getDefaultParent());Ea()},!0,ca);ca=null}}this.hideDialog()}finally{B.model.endUpdate()}null!=ca&&ca()}}catch(Na){this.handleError(Na)}};EditorUi.prototype.getSearch=function(b){var c="";if("1"!=urlParams.offline&&"1"!=urlParams.demo&&null!=b&&0<window.location.search.length){var d="?",e;for(e in urlParams)0>mxUtils.indexOf(b,e)&&null!=urlParams[e]&&(c+=d+e+"="+urlParams[e],d="&")}else c=window.location.search;return c};EditorUi.prototype.getUrl=function(b){b=
+null!=b?b:window.location.pathname;var c=0<b.indexOf("?")?1:0;if("1"==urlParams.offline)b+=window.location.search;else{var d="tmp libs clibs state fileId code share notitle data url embed client create title splash".split(" "),e;for(e in urlParams)0>mxUtils.indexOf(d,e)&&(b=0==c?b+"?":b+"&",null!=urlParams[e]&&(b+=e+"="+urlParams[e],c++))}return b};EditorUi.prototype.showLinkDialog=function(b,c,e,f,k){b=new LinkDialog(this,b,c,e,!0,f,k);this.showDialog(b.container,560,130,!0,!0);b.init()};EditorUi.prototype.getServiceCount=
function(b){var c=1;null==this.drive&&"function"!==typeof window.DriveClient||c++;null==this.dropbox&&"function"!==typeof window.DropboxClient||c++;null==this.oneDrive&&"function"!==typeof window.OneDriveClient||c++;null!=this.gitHub&&c++;null!=this.gitLab&&c++;null!=this.notion&&c++;b&&isLocalStorage&&"1"==urlParams.browser&&c++;return c};EditorUi.prototype.updateUi=function(){this.updateButtonContainer();this.updateActionStates();var b=this.getCurrentFile(),c=null!=b||"1"==urlParams.embed&&this.editor.graph.isEnabled();
this.menus.get("viewPanels").setEnabled(c);this.menus.get("viewZoom").setEnabled(c);var e=("1"!=urlParams.embed||!this.editor.graph.isEnabled())&&(null==b||b.isRestricted());this.actions.get("makeCopy").setEnabled(!e);this.actions.get("print").setEnabled(!e);this.menus.get("exportAs").setEnabled(!e);this.menus.get("embed").setEnabled(!e);e="1"!=urlParams.embed||this.editor.graph.isEnabled();this.menus.get("extras").setEnabled(e);Editor.enableCustomLibraries&&(this.menus.get("openLibraryFrom").setEnabled(e),
this.menus.get("newLibrary").setEnabled(e));b="1"==urlParams.embed&&this.editor.graph.isEnabled()||null!=b&&b.isEditable();this.actions.get("image").setEnabled(c);this.actions.get("zoomIn").setEnabled(c);this.actions.get("zoomOut").setEnabled(c);this.actions.get("resetView").setEnabled(c);this.actions.get("undo").setEnabled(this.canUndo()&&b);this.actions.get("redo").setEnabled(this.canRedo()&&b);this.menus.get("edit").setEnabled(c);this.menus.get("view").setEnabled(c);this.menus.get("importFrom").setEnabled(b);
@@ -3745,9 +3749,9 @@ return null!=b&&b.isEditable()||"1"==urlParams.embed&&this.editor.graph.isEnable
this.actions.get("shadowVisible").setEnabled(f);this.actions.get("connectionArrows").setEnabled(f);this.actions.get("connectionPoints").setEnabled(f);this.actions.get("copyStyle").setEnabled(f&&!b.isSelectionEmpty());this.actions.get("pasteStyle").setEnabled(f&&0<e.cells.length);this.actions.get("editGeometry").setEnabled(0<e.vertices.length);this.actions.get("createShape").setEnabled(f);this.actions.get("createRevision").setEnabled(f);this.actions.get("moveToFolder").setEnabled(null!=c);this.actions.get("makeCopy").setEnabled(null!=
c&&!c.isRestricted());this.actions.get("editDiagram").setEnabled(f&&(null==c||!c.isRestricted()));this.actions.get("publishLink").setEnabled(null!=c&&!c.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!=c&&c.isRenamable()||"1"==
urlParams.embed);this.actions.get("close").setEnabled(null!=c);this.menus.get("publish").setEnabled(null!=c&&!c.isRestricted());c=this.actions.get("findReplace");c.setEnabled("hidden"!=this.diagramContainer.style.visibility);c.label=mxResources.get("find")+(b.isEnabled()?"/"+mxResources.get("replace"):"")+"...";b=b.view.getState(b.getSelectionCell());this.actions.get("editShape").setEnabled(f&&null!=b&&null!=b.shape&&null!=b.shape.stencil)};var t=EditorUi.prototype.destroy;EditorUi.prototype.destroy=
-function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);t.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,e,f,k,n,p,t){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(f,k,n)),"image/svg+xml");
-else{var g=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),q=Math.floor(l.height*k/d.view.scale);if(g.length<=MAX_REQUEST_SIZE&&m*q<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var u={globalVars:d.getExportVariables()};t&&(u.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+
-encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(u))+(0<p?"&dpi="+p:"")+"&bg="+(null!=f?f:"none")+"&w="+m+"&h="+q+"&border="+n+"&xml="+encodeURIComponent(g))})}else"png"==e?b.exportImage(k,null==f||"none"==f,!0,!1,!1,n,!0,!1,null,t,p):b.exportImage(k,!1,!0,!1,!1,n,!0,!1,"jpeg",t);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=
+function(){null!=this.exportDialog&&(this.exportDialog.parentNode.removeChild(this.exportDialog),this.exportDialog=null);t.apply(this,arguments)};null!=window.ExportDialog&&(ExportDialog.showXmlOption=!1,ExportDialog.showGifOption=!1,ExportDialog.exportFile=function(b,c,e,f,k,p,t,v){var d=b.editor.graph;if("xml"==e)b.hideDialog(),b.saveData(c,"xml",mxUtils.getXml(b.editor.getGraphXml()),"text/xml");else if("svg"==e)b.hideDialog(),b.saveData(c,"svg",mxUtils.getXml(d.getSvg(f,k,p)),"image/svg+xml");
+else{var g=b.getFileData(!0,null,null,null,null,!0),l=d.getGraphBounds(),m=Math.floor(l.width*k/d.view.scale),n=Math.floor(l.height*k/d.view.scale);if(g.length<=MAX_REQUEST_SIZE&&m*n<MAX_AREA)if(b.hideDialog(),"png"!=e&&"jpg"!=e&&"jpeg"!=e||!b.isExportToCanvas()){var q={globalVars:d.getExportVariables()};v&&(q.grid={size:d.gridSize,steps:d.view.gridSteps,color:d.view.gridColor});b.saveRequest(c,e,function(b,c){return new mxXmlRequest(EXPORT_URL,"format="+e+"&base64="+(c||"0")+(null!=b?"&filename="+
+encodeURIComponent(b):"")+"&extras="+encodeURIComponent(JSON.stringify(q))+(0<t?"&dpi="+t:"")+"&bg="+(null!=f?f:"none")+"&w="+m+"&h="+n+"&border="+p+"&xml="+encodeURIComponent(g))})}else"png"==e?b.exportImage(k,null==f||"none"==f,!0,!1,!1,p,!0,!1,null,v,t):b.exportImage(k,!1,!0,!1,!1,p,!0,!1,"jpeg",v);else mxUtils.alert(mxResources.get("drawingTooLarge"))}});EditorUi.prototype.getDiagramTextContent=function(){this.editor.graph.setEnabled(!1);var b=this.editor.graph,c="";if(null!=this.pages)for(var e=
0;e<this.pages.length;e++){var f=b;this.currentPage!=this.pages[e]&&(f=this.createTemporaryGraph(b.getStylesheet()),this.updatePageRoot(this.pages[e]),f.model.setRoot(this.pages[e].root));c+=this.pages[e].getName()+" "+f.getIndexableText()+" "}else c=b.getIndexableText();this.editor.graph.setEnabled(!0);return c};EditorUi.prototype.showRemotelyStoredLibrary=function(b){var c={},d=document.createElement("div");d.style.whiteSpace="nowrap";var e=document.createElement("h3");mxUtils.write(e,mxUtils.htmlEntities(b));
e.style.cssText="width:100%;text-align:center;margin-top:0px;margin-bottom:12px";d.appendChild(e);var f=document.createElement("div");f.style.cssText="border:1px solid lightGray;overflow: auto;height:300px";f.innerHTML='<div style="text-align:center;padding:8px;"><img src="'+IMAGE_PATH+'/spin.gif"></div>';var k={};try{var p=mxSettings.getCustomLibraries();for(b=0;b<p.length;b++){var t=p[b];if("R"==t.substring(0,1)){var y=JSON.parse(decodeURIComponent(t.substring(1)));k[y[0]]={id:y[0],title:y[1],downloadUrl:y[2]}}}}catch(x){}this.remoteInvoke("getCustomLibraries",
null,null,function(b){f.innerHTML="";if(0==b.length)f.innerHTML='<div style="text-align:center;padding-top:20px;color:gray;">'+mxUtils.htmlEntities(mxResources.get("noLibraries"))+"</div>";else for(var d=0;d<b.length;d++){var e=b[d];k[e.id]&&(c[e.id]=e);var g=this.addCheckbox(f,e.title,k[e.id]);(function(b,d){mxEvent.addListener(d,"change",function(){this.checked?c[b.id]=b:delete c[b.id]})})(e,g)}},mxUtils.bind(this,function(b){f.innerHTML="";var c=document.createElement("div");c.style.padding="8px";
@@ -3778,20 +3782,20 @@ var CommentsWindow=function(b,c,e,k,f,p){function t(){for(var b=H.getElementsByT
"geCommentEditTxtArea";l.style.minHeight=g.offsetHeight+"px";l.value=b.content;c.insertBefore(l,g);var m=document.createElement("div");m.className="geCommentEditBtns";var p=mxUtils.button(mxResources.get("cancel"),function(){e?(c.parentNode.removeChild(c),t()):f();y=null});p.className="geCommentEditBtn";m.appendChild(p);var n=mxUtils.button(mxResources.get("save"),function(){g.innerHTML="";b.content=l.value;mxUtils.write(g,b.content);f();d(b);y=null});mxEvent.addListener(l,"keydown",mxUtils.bind(this,
function(b){mxEvent.isConsumed(b)||((mxEvent.isControlDown(b)||mxClient.IS_MAC&&mxEvent.isMetaDown(b))&&13==b.keyCode?(n.click(),mxEvent.consume(b)):27==b.keyCode&&(p.click(),mxEvent.consume(b)))}));n.focus();n.className="geCommentEditBtn gePrimaryBtn";m.appendChild(n);c.insertBefore(m,g);k.style.display="none";g.style.display="none";l.focus()}function g(c,d){d.innerHTML="";var e=new Date(c.modifiedDate),f=b.timeSince(e);null==f&&(f=mxResources.get("lessThanAMinute"));mxUtils.write(d,mxResources.get("timeAgo",
[f],"{1} ago"));d.setAttribute("title",e.toLocaleDateString()+" "+e.toLocaleTimeString())}function l(b){var c=document.createElement("img");c.className="geCommentBusyImg";c.src=IMAGE_PATH+"/spin.gif";b.appendChild(c);b.busyImg=c}function q(b){b.style.border="1px solid red";b.removeChild(b.busyImg)}function m(b){b.style.border="";b.removeChild(b.busyImg)}function n(c,e,f,k,p){function C(b,d,e){var f=document.createElement("li");f.className="geCommentAction";var g=document.createElement("a");g.className=
-"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});M.appendChild(f);e&&(f.style.display="none")}function x(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=O;b(c);return{pdiv:e,replies:d}}function L(e,f,g,p,t){function u(){l(L);c.addReply(C,function(b){C.id=b;c.replies.push(C);m(L);g&&g()},function(c){v();q(L);b.handleError(c,null,
-null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},p,t)}function v(){d(C,L,function(b){u()},!0)}var z=x().pdiv,C=b.newComment(e,b.getCurrentUser());C.pCommentId=c.id;null==c.replies&&(c.replies=[]);var L=n(C,c.replies,z,k+1);f?v():u()}if(p||!c.isResolved){z.style.display="none";var O=document.createElement("div");O.className="geCommentContainer";O.setAttribute("data-commentId",c.id);O.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(O.style.backgroundColor="ghostWhite");
-var D=document.createElement("div");D.className="geCommentHeader";var K=document.createElement("img");K.className="geCommentUserImg";K.src=c.user.pictureUrl||Editor.userImage;D.appendChild(K);K=document.createElement("div");K.className="geCommentHeaderTxt";D.appendChild(K);var U=document.createElement("div");U.className="geCommentUsername";mxUtils.write(U,c.user.displayName||"");K.appendChild(U);U=document.createElement("div");U.className="geCommentDate";U.setAttribute("data-commentId",c.id);g(c,
-U);K.appendChild(U);O.appendChild(D);D=document.createElement("div");D.className="geCommentTxt";mxUtils.write(D,c.content||"");O.appendChild(D);c.isLocked&&(O.style.opacity="0.5");D=document.createElement("div");D.className="geCommentActions";var M=document.createElement("ul");M.className="geCommentActionsList";D.appendChild(M);u||c.isLocked||0!=k&&!v||C(mxResources.get("reply"),function(){L("",!0)},c.isResolved);K=b.getCurrentUser();null==K||K.id!=c.user.id||u||c.isLocked||(C(mxResources.get("edit"),
-function(){function e(){d(c,O,function(){l(O);c.editComment(c.content,function(){m(O)},function(c){q(O);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),C(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(O);c.deleteComment(function(b){if(!0===b){b=O.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=O.querySelectorAll(".geCommentAction");for(b=
-0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);m(O);O.style.opacity="0.5"}else{d=x(c).replies;for(b=0;b<d.length;b++)H.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}z.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){q(O);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||C(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
-b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=x(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);E||(f[k].style.display="none")}t()}c.isResolved?L(mxResources.get("reOpened")+": ",!0,
-d,!1,!0):L(mxResources.get("markedAsResolved"),!1,d,!0)});O.appendChild(D);null!=f?H.insertBefore(O,f.nextSibling):H.appendChild(O);for(f=0;null!=c.replies&&f<c.replies.length;f++)D=c.replies[f],D.isResolved=c.isResolved,n(D,c.replies,null,k+1,p);null!=y&&(y.comment.id==c.id?(p=c.content,c.content=y.comment.content,d(c,O,y.saveCallback,y.deleteOnCancel),c.content=p):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return O}}
+"geCommentActionLnk";mxUtils.write(g,b);f.appendChild(g);mxEvent.addListener(g,"click",function(b){d(b,c);b.preventDefault();mxEvent.consume(b)});K.appendChild(f);e&&(f.style.display="none")}function x(){function b(c){d.push(e);if(null!=c.replies)for(var f=0;f<c.replies.length;f++)e=e.nextSibling,b(c.replies[f])}var d=[],e=P;b(c);return{pdiv:e,replies:d}}function M(e,f,g,p,t){function u(){l(M);c.addReply(C,function(b){C.id=b;c.replies.push(C);m(M);g&&g()},function(c){v();q(M);b.handleError(c,null,
+null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))},p,t)}function v(){d(C,M,function(b){u()},!0)}var z=x().pdiv,C=b.newComment(e,b.getCurrentUser());C.pCommentId=c.id;null==c.replies&&(c.replies=[]);var M=n(C,c.replies,z,k+1);f?v():u()}if(p||!c.isResolved){z.style.display="none";var P=document.createElement("div");P.className="geCommentContainer";P.setAttribute("data-commentId",c.id);P.style.marginLeft=20*k+5+"px";c.isResolved&&!Editor.isDarkMode()&&(P.style.backgroundColor="ghostWhite");
+var D=document.createElement("div");D.className="geCommentHeader";var L=document.createElement("img");L.className="geCommentUserImg";L.src=c.user.pictureUrl||Editor.userImage;D.appendChild(L);L=document.createElement("div");L.className="geCommentHeaderTxt";D.appendChild(L);var U=document.createElement("div");U.className="geCommentUsername";mxUtils.write(U,c.user.displayName||"");L.appendChild(U);U=document.createElement("div");U.className="geCommentDate";U.setAttribute("data-commentId",c.id);g(c,
+U);L.appendChild(U);P.appendChild(D);D=document.createElement("div");D.className="geCommentTxt";mxUtils.write(D,c.content||"");P.appendChild(D);c.isLocked&&(P.style.opacity="0.5");D=document.createElement("div");D.className="geCommentActions";var K=document.createElement("ul");K.className="geCommentActionsList";D.appendChild(K);u||c.isLocked||0!=k&&!v||C(mxResources.get("reply"),function(){M("",!0)},c.isResolved);L=b.getCurrentUser();null==L||L.id!=c.user.id||u||c.isLocked||(C(mxResources.get("edit"),
+function(){function e(){d(c,P,function(){l(P);c.editComment(c.content,function(){m(P)},function(c){q(P);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})}e()},c.isResolved),C(mxResources.get("delete"),function(){b.confirm(mxResources.get("areYouSure"),function(){l(P);c.deleteComment(function(b){if(!0===b){b=P.querySelector(".geCommentTxt");b.innerHTML="";mxUtils.write(b,mxResources.get("msgDeleted"));var d=P.querySelectorAll(".geCommentAction");for(b=
+0;b<d.length;b++)d[b].parentNode.removeChild(d[b]);m(P);P.style.opacity="0.5"}else{d=x(c).replies;for(b=0;b<d.length;b++)H.removeChild(d[b]);for(b=0;b<e.length;b++)if(e[b]==c){e.splice(b,1);break}z.style.display=0==H.getElementsByTagName("div").length?"block":"none"}},function(c){q(P);b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})})},c.isResolved));u||c.isLocked||0!=k||C(c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"),function(b){function d(){var d=
+b.target;d.innerHTML="";c.isResolved=!c.isResolved;mxUtils.write(d,c.isResolved?mxResources.get("reopen"):mxResources.get("resolve"));for(var e=c.isResolved?"none":"",f=x(c).replies,g=Editor.isDarkMode()?"transparent":c.isResolved?"ghostWhite":"white",k=0;k<f.length;k++){f[k].style.backgroundColor=g;for(var l=f[k].querySelectorAll(".geCommentAction"),m=0;m<l.length;m++)l[m]!=d.parentNode&&(l[m].style.display=e);E||(f[k].style.display="none")}t()}c.isResolved?M(mxResources.get("reOpened")+": ",!0,
+d,!1,!0):M(mxResources.get("markedAsResolved"),!1,d,!0)});P.appendChild(D);null!=f?H.insertBefore(P,f.nextSibling):H.appendChild(P);for(f=0;null!=c.replies&&f<c.replies.length;f++)D=c.replies[f],D.isResolved=c.isResolved,n(D,c.replies,null,k+1,p);null!=y&&(y.comment.id==c.id?(p=c.content,c.content=y.comment.content,d(c,P,y.saveCallback,y.deleteOnCancel),c.content=p):null==y.comment.id&&y.comment.pCommentId==c.id&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel)));return P}}
var u=!b.canComment(),v=b.canReplyToReplies(),y=null,x=document.createElement("div");x.className="geCommentsWin";x.style.background=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";var F=EditorUi.compactUi?"26px":"30px",H=document.createElement("div");H.className="geCommentsList";H.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";H.style.bottom=parseInt(F)+7+"px";x.appendChild(H);var z=document.createElement("span");z.style.cssText="display:none;padding-top:10px;text-align:center;";
mxUtils.write(z,mxResources.get("noCommentsFound"));var D=document.createElement("div");D.className="geToolbarContainer geCommentsToolbar";D.style.height=F;D.style.padding=EditorUi.compactUi?"4px 0px 3px 0px":"1px";D.style.backgroundColor=Editor.isDarkMode()?Dialog.backdropColor:"whiteSmoke";F=document.createElement("a");F.className="geButton";if(!u){var N=F.cloneNode();N.innerHTML='<div class="geSprite geSprite-plus" style="display:inline-block;"></div>';N.setAttribute("title",mxResources.get("create")+
"...");mxEvent.addListener(N,"click",function(c){function e(){d(f,g,function(c){l(g);b.addComment(c,function(b){c.id=b;J.push(c);m(g)},function(c){q(g);e();b.handleError(c,null,null,null,mxUtils.htmlEntities(mxResources.get("objectNotFound")))})},!0)}var f=b.newComment("",b.getCurrentUser()),g=n(f,J,null,0);e();c.preventDefault();mxEvent.consume(c)});D.appendChild(N)}N=F.cloneNode();N.innerHTML='<img src="'+IMAGE_PATH+'/check.png" style="width: 16px; padding: 2px;">';N.setAttribute("title",mxResources.get("showResolved"));
var E=!1;Editor.isDarkMode()&&(N.style.filter="invert(100%)");mxEvent.addListener(N,"click",function(b){this.className=(E=!E)?"geButton geCheckedBtn":"geButton";C();b.preventDefault();mxEvent.consume(b)});D.appendChild(N);b.commentsRefreshNeeded()&&(N=F.cloneNode(),N.innerHTML='<img src="'+IMAGE_PATH+'/update16.png" style="width: 16px; padding: 2px;">',N.setAttribute("title",mxResources.get("refresh")),Editor.isDarkMode()&&(N.style.filter="invert(100%)"),mxEvent.addListener(N,"click",function(b){C();
b.preventDefault();mxEvent.consume(b)}),D.appendChild(N));b.commentsSaveNeeded()&&(F=F.cloneNode(),F.innerHTML='<img src="'+IMAGE_PATH+'/save.png" style="width: 20px; padding: 2px;">',F.setAttribute("title",mxResources.get("save")),Editor.isDarkMode()&&(F.style.filter="invert(100%)"),mxEvent.addListener(F,"click",function(b){p();b.preventDefault();mxEvent.consume(b)}),D.appendChild(F));x.appendChild(D);var J=[],C=mxUtils.bind(this,function(){this.hasError=!1;if(null!=y)try{y.div=y.div.cloneNode(!0);
-var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(L){b.handleError(L)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
+var c=y.div.querySelector(".geCommentEditTxtArea"),e=y.div.querySelector(".geCommentEditBtns");y.comment.content=c.value;c.parentNode.removeChild(c);e.parentNode.removeChild(e)}catch(M){b.handleError(M)}H.innerHTML='<div style="padding-top:10px;text-align:center;"><img src="'+IMAGE_PATH+'/spin.gif" valign="middle"> '+mxUtils.htmlEntities(mxResources.get("loading"))+"...</div>";v=b.canReplyToReplies();b.commentsSupported()?b.getComments(function(b){function c(b){if(null!=b){b.sort(function(b,c){return new Date(b.modifiedDate)-
new Date(c.modifiedDate)});for(var d=0;d<b.length;d++)c(b[d].replies)}}b.sort(function(b,c){return new Date(b.modifiedDate)-new Date(c.modifiedDate)});H.innerHTML="";H.appendChild(z);z.style.display="block";J=b;for(b=0;b<J.length;b++)c(J[b].replies),n(J[b],J,null,0,E);null!=y&&null==y.comment.id&&null==y.comment.pCommentId&&(H.appendChild(y.div),d(y.comment,y.div,y.saveCallback,y.deleteOnCancel))},mxUtils.bind(this,function(b){H.innerHTML=mxUtils.htmlEntities(mxResources.get("error")+(b&&b.message?
": "+b.message:""));this.hasError=!0})):H.innerHTML=mxUtils.htmlEntities(mxResources.get("error"))});C();this.refreshComments=C;D=mxUtils.bind(this,function(){function b(c){var e=d[c.id];if(null!=e)for(g(c,e),e=0;null!=c.replies&&e<c.replies.length;e++)b(c.replies[e])}if(this.window.isVisible()){for(var c=H.querySelectorAll(".geCommentDate"),d={},e=0;e<c.length;e++){var f=c[e];d[f.getAttribute("data-commentId")]=f}for(e=0;e<J.length;e++)b(J[e])}});setInterval(D,6E4);this.refreshCommentsTime=D;this.window=
new mxWindow(mxResources.get("comments"),x,c,e,k,f,!0,!0);this.window.minimumSize=new mxRectangle(0,0,300,200);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){this.window.fit()}));this.window.setLocation=function(b,c){var d=window.innerHeight||document.body.clientHeight||document.documentElement.clientHeight;b=Math.max(0,Math.min(b,(window.innerWidth||
@@ -3896,7 +3900,7 @@ v.startEditingAtCell(v.getSelectionCell()),mxEvent.consume(c);else if(mxEvent.is
mxEvent.consume(c))}}catch(G){u.handleError(G)}mxEvent.isConsumed(c)||E.apply(this,arguments)};var J=v.connectVertex;v.connectVertex=function(c,e,f,k,m,p,n){var t=v.getIncomingTreeEdges(c);if(b(c)){var u=d(c),z=u==mxConstants.DIRECTION_EAST||u==mxConstants.DIRECTION_WEST,C=e==mxConstants.DIRECTION_EAST||e==mxConstants.DIRECTION_WEST;return u==e||0==t.length?q(c,e):z==C?l(c):g(c,e!=mxConstants.DIRECTION_NORTH&&e!=mxConstants.DIRECTION_WEST)}return J.apply(this,arguments)};v.getSubtree=function(d){var e=
[d];!c(d)&&!b(d)||t(d)||v.traverse(d,!0,function(b,c){var d=null!=c&&v.isTreeEdge(c);d&&0>mxUtils.indexOf(e,c)&&e.push(c);(null==c||d)&&0>mxUtils.indexOf(e,b)&&e.push(b);return null==c||d});return e};var C=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){C.apply(this,arguments);(c(this.state.cell)||b(this.state.cell))&&!t(this.state.cell)&&0<this.graph.getOutgoingTreeEdges(this.state.cell).length&&(this.moveHandle=mxUtils.createImage(Editor.moveImage),this.moveHandle.setAttribute("title",
"Move Subtree"),this.moveHandle.style.position="absolute",this.moveHandle.style.cursor="pointer",this.moveHandle.style.width="24px",this.moveHandle.style.height="24px",this.graph.container.appendChild(this.moveHandle),mxEvent.addGestureListeners(this.moveHandle,mxUtils.bind(this,function(b){this.graph.graphHandler.start(this.state.cell,mxEvent.getClientX(b),mxEvent.getClientY(b),this.graph.getSubtree(this.state.cell));this.graph.graphHandler.cellWasClicked=!0;this.graph.isMouseTrigger=mxEvent.isMouseEvent(b);
-this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(b)})))};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){K.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 M=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){M.apply(this,
+this.graph.isMouseDown=!0;u.hoverIcons.reset();mxEvent.consume(b)})))};var K=mxVertexHandler.prototype.redrawHandles;mxVertexHandler.prototype.redrawHandles=function(){K.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 L=mxVertexHandler.prototype.setHandlesVisible;mxVertexHandler.prototype.setHandlesVisible=function(b){L.apply(this,
arguments);null!=this.moveHandle&&(this.moveHandle.style.display=b?"":"none")};var Z=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(b,c){Z.apply(this,arguments);null!=this.moveHandle&&(this.moveHandle.parentNode.removeChild(this.moveHandle),this.moveHandle=null)}};if("undefined"!==typeof Sidebar){var e=Sidebar.prototype.createAdvancedShapes;Sidebar.prototype.createAdvancedShapes=function(){var b=e.apply(this,arguments),c=this.graph;return b.concat([this.addEntry("tree container",
function(){var b=new mxCell("Tree Container",new mxGeometry(0,0,400,320),"swimlane;startSize=20;horizontal=1;containerType=tree;");b.vertex=!0;var c=new mxCell("Parent",new mxGeometry(140,60,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');c.vertex=!0;var d=new mxCell("Child",new mxGeometry(140,140,120,40),'whiteSpace=wrap;html=1;treeFolding=1;treeMoving=1;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","startArrow":"none","endArrow":"none"};');
d.vertex=!0;var 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;c.insertEdge(e,!0);d.insertEdge(e,!1);b.insert(e);b.insert(c);b.insert(d);return sb.createVertexTemplateFromCells([b],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree mindmap mindmaps central idea branch topic",function(){var b=new mxCell("Mindmap",new mxGeometry(0,0,420,126),"swimlane;startSize=20;horizontal=1;containerType=tree;");
@@ -3915,16 +3919,17 @@ q.geometry.relative=!0;q.edge=!0;e.insertEdge(q,!0);k.insertEdge(q,!1);b.insert(
c.geometry.setTerminalPoint(new mxPoint(0,0),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);return sb.createVertexTemplateFromCells([b,c],b.geometry.width,b.geometry.height,b.value)}),this.addEntry("tree sub sections",function(){var b=new mxCell("Sub Section",new mxGeometry(0,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");b.vertex=!0;var c=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");
c.geometry.setTerminalPoint(new mxPoint(110,-40),!0);c.geometry.relative=!0;c.edge=!0;b.insertEdge(c,!1);var d=new mxCell("Sub Section",new mxGeometry(120,0,100,60),"whiteSpace=wrap;html=1;align=center;verticalAlign=middle;treeFolding=1;treeMoving=1;");d.vertex=!0;var e=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;startArrow=none;endArrow=none;rounded=0;targetPortConstraint=eastwest;sourcePortConstraint=northsouth;");e.geometry.setTerminalPoint(new mxPoint(110,-40),!0);e.geometry.relative=
!0;e.edge=!0;d.insertEdge(e,!1);return sb.createVertexTemplateFromCells([c,e,b,d],220,60,"Sub Sections")})])}}})();EditorUi.initMinimalTheme=function(){function b(b,c){var d=b.editor.graph;d.popupMenuHandler.hideMenu();null==b.formatWindow?(b.formatWindow=new k(b,mxResources.get("format"),"1"==urlParams.sketch?Math.max(10,b.diagramContainer.clientWidth-241):Math.max(10,b.diagramContainer.clientWidth-248),"1"==urlParams.winCtrls&&"1"==urlParams.sketch?80:60,240,Math.min(566,d.container.clientHeight-10),function(c){var d=b.createFormat(c);d.init();b.addListener("darkModeChanged",mxUtils.bind(this,function(){d.refresh()}));
-return d}),b.formatWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.formatWindow.window.fit()})),b.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),b.formatWindow.window.setVisible(!0)):b.formatWindow.window.setVisible(null!=c?c:!b.formatWindow.window.isVisible())}function c(b,c){var d=b.editor.graph;d.popupMenuHandler.hideMenu();new mxRectangle;if(null==b.sidebarWindow){var e=Math.min(d.container.clientWidth-10,218);b.sidebarWindow=new k(b,mxResources.get("shapes"),
-10,"1"==urlParams.sketch&&"1"!=urlParams.embedInline?15:56,e-6,Math.min(650,d.container.clientHeight-30),function(c){function d(d,e){var f=b.menus.get(d),k=g.addMenu(e,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));k.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;cusor:pointer;";k.className="geTitle";c.appendChild(k);return k}var e=document.createElement("div");e.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";
-e.className="geTitle";var f=document.createElement("span");f.style.fontSize="18px";f.style.marginRight="5px";f.innerHTML="+";e.appendChild(f);mxUtils.write(e,mxResources.get("moreShapes"));c.appendChild(e);mxEvent.addListener(e,"click",function(){b.actions.get("shapes").funct()});var g=new Menubar(b,c);!Editor.enableCustomLibraries||"1"==urlParams.embed&&"1"!=urlParams.libraries?e.style.bottom="0":null!=b.actions.get("newLibrary")?(e=document.createElement("div"),e.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;",
-e.className="geTitle",f=document.createElement("span"),f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("newLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("newLibrary").funct),e=document.createElement("div"),e.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;",e.className="geTitle",f=document.createElement("span"),
-f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("openLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("openLibrary").funct)):(e=d("newLibrary",mxResources.get("newLibrary")),e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="0",e=d("openLibraryFrom",mxResources.get("openLibraryFrom")),e.style.borderLeft="1px solid lightgray",e.style.boxSizing="border-box",e.style.paddingRight=
-"6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="50%");c.appendChild(b.sidebar.container);c.style.overflow="hidden";return c});b.sidebarWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.sidebarWindow.window.fit()}));b.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);b.sidebarWindow.window.setVisible(!0);b.getLocalData("sidebar",function(c){b.sidebar.showEntries(c,null,!0)});b.restoreLibraries()}else b.sidebarWindow.window.setVisible(null!=c?c:!b.sidebarWindow.window.isVisible())}
-if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=null;else{var e=0;try{e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}catch(z){}var k=function(b,c,d,e,f,g,k){var l=document.createElement("div");l.className="geSidebarContainer";l.style.position="absolute";l.style.width="100%";l.style.height="100%";l.style.border="1px solid whiteSmoke";l.style.overflowX="hidden";l.style.overflowY=
-"auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=this.table.firstChild.firstChild.firstChild;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-e.clientWidth-2));
-c=Math.max(0,Math.min(c,d-e.clientHeight-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;
-mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke-width="2" style="stroke-opacity:0.4" stroke="#ffffff"/><path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
+return d}),b.formatWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.formatWindow.window.fit()})),b.formatWindow.window.minimumSize=new mxRectangle(0,0,240,80),b.formatWindow.window.setVisible(!0)):b.formatWindow.window.setVisible(null!=c?c:!b.formatWindow.window.isVisible())}function c(b,c){var d=b.editor.graph;d.popupMenuHandler.hideMenu();new mxRectangle;if(null==b.sidebarWindow){var e=Math.min(d.container.clientWidth-10,218),f=Math.min(d.container.clientHeight-40,650);b.sidebarWindow=
+new k(b,mxResources.get("shapes"),"1"==urlParams.sketch&&"1"!=urlParams.embedInline?66:10,"1"==urlParams.sketch&&"1"!=urlParams.embedInline?Math.max(30,(d.container.clientHeight-f)/2):56,e-6,f-6,function(c){function d(d,e){var f=b.menus.get(d),k=g.addMenu(e,mxUtils.bind(this,function(){f.funct.apply(this,arguments)}));k.style.cssText="position:absolute;border-top:1px solid lightgray;width:50%;height:24px;bottom:0px;text-align:center;cursor:pointer;padding:6px 0 0 0;cusor:pointer;";k.className="geTitle";
+c.appendChild(k);return k}var e=document.createElement("div");e.style.cssText="position:absolute;left:0;right:0;border-top:1px solid lightgray;height:24px;bottom:31px;text-align:center;cursor:pointer;padding:6px 0 0 0;";e.className="geTitle";var f=document.createElement("span");f.style.fontSize="18px";f.style.marginRight="5px";f.innerHTML="+";e.appendChild(f);mxUtils.write(e,mxResources.get("moreShapes"));c.appendChild(e);mxEvent.addListener(e,"click",function(){b.actions.get("shapes").funct()});
+var g=new Menubar(b,c);!Editor.enableCustomLibraries||"1"==urlParams.embed&&"1"!=urlParams.libraries?e.style.bottom="0":null!=b.actions.get("newLibrary")?(e=document.createElement("div"),e.style.cssText="position:absolute;left:0px;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;",e.className="geTitle",f=document.createElement("span"),f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("newLibrary")),e.appendChild(f),
+c.appendChild(e),mxEvent.addListener(e,"click",b.actions.get("newLibrary").funct),e=document.createElement("div"),e.style.cssText="position:absolute;left:50%;width:50%;border-top:1px solid lightgray;height:30px;bottom:0px;text-align:center;cursor:pointer;padding:0px;border-left: 1px solid lightgray;",e.className="geTitle",f=document.createElement("span"),f.style.cssText="position:relative;top:6px;",mxUtils.write(f,mxResources.get("openLibrary")),e.appendChild(f),c.appendChild(e),mxEvent.addListener(e,
+"click",b.actions.get("openLibrary").funct)):(e=d("newLibrary",mxResources.get("newLibrary")),e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="0",e=d("openLibraryFrom",mxResources.get("openLibraryFrom")),e.style.borderLeft="1px solid lightgray",e.style.boxSizing="border-box",e.style.paddingRight="6px",e.style.paddingLeft="6px",e.style.height="32px",e.style.left="50%");c.appendChild(b.sidebar.container);c.style.overflow="hidden";
+return c});b.sidebarWindow.window.addListener(mxEvent.SHOW,mxUtils.bind(this,function(){b.sidebarWindow.window.fit()}));b.sidebarWindow.window.minimumSize=new mxRectangle(0,0,90,90);b.sidebarWindow.window.setVisible(!0);b.getLocalData("sidebar",function(c){b.sidebar.showEntries(c,null,!0)});b.restoreLibraries()}else b.sidebarWindow.window.setVisible(null!=c?c:!b.sidebarWindow.window.isVisible())}if("1"==urlParams.lightbox||"0"==urlParams.chrome||"undefined"===typeof window.Format||"undefined"===typeof window.Menus)window.uiTheme=
+null;else{var e=0;try{e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth}catch(z){}var k=function(b,c,d,e,f,g,k){var l=document.createElement("div");l.className="geSidebarContainer";l.style.position="absolute";l.style.width="100%";l.style.height="100%";l.style.border="1px solid whiteSmoke";l.style.overflowX="hidden";l.style.overflowY="auto";k(l);this.window=new mxWindow(c,l,d,e,f,g,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);
+this.window.setClosable(!0);this.window.setVisible(!0);this.window.setLocation=function(b,c){var d=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,e=this.table.firstChild.firstChild.firstChild;b=Math.max(0,Math.min(b,(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)-e.clientWidth-2));c=Math.max(0,Math.min(c,d-e.clientHeight-2));this.getX()==b&&this.getY()==c||mxWindow.prototype.setLocation.apply(this,arguments)};mxClient.IS_SF&&
+(this.window.div.onselectstart=mxUtils.bind(this,function(c){null==c&&(c=window.event);return null!=c&&b.isSelectionAllowed(c)}))};Editor.checkmarkImage=Graph.createSvgImage(22,18,'<path transform="translate(4 0)" d="M7.181,15.007a1,1,0,0,1-.793-0.391L3.222,10.5A1,1,0,1,1,4.808,9.274L7.132,12.3l6.044-8.86A1,1,0,1,1,14.83,4.569l-6.823,10a1,1,0,0,1-.8.437H7.181Z" fill="#29b6f2"/>').src;mxWindow.prototype.closeImage=Graph.createSvgImage(18,10,'<path d="M 5 1 L 13 9 M 13 1 L 5 9" stroke="#C0C0C0" stroke-width="2"/>').src;
+mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'<path d="M 3 7 L 7 3 L 11 7" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'<path d="M 3 3 L 7 7 L 11 3" stroke="#C0C0C0" stroke-width="2" fill="none"/>').src;mxConstraintHandler.prototype.pointImage=Graph.createSvgImage(5,5,'<path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke-width="2" style="stroke-opacity:0.4" stroke="#ffffff"/><path d="m 0 0 L 5 5 M 0 5 L 5 0" stroke="#29b6f2"/>');
mxOutline.prototype.sizerImage=null;mxConstants.VERTEX_SELECTION_COLOR="#C0C0C0";mxConstants.EDGE_SELECTION_COLOR="#C0C0C0";mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff";mxConstants.DEFAULT_VALID_COLOR="#29b6f2";mxConstants.GUIDE_COLOR="#C0C0C0";mxConstants.HIGHLIGHT_STROKEWIDTH=5;mxConstants.HIGHLIGHT_OPACITY=35;mxConstants.OUTLINE_COLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_FILLCOLOR="#29b6f2";mxConstants.OUTLINE_HANDLE_STROKECOLOR="#fff";Graph.prototype.svgShadowColor="#3D4574";Graph.prototype.svgShadowOpacity=
"0.4";Graph.prototype.svgShadowSize="0.6";Graph.prototype.svgShadowBlur="1.2";Format.inactiveTabBackgroundColor="#f0f0f0";mxGraphHandler.prototype.previewColor="#C0C0C0";mxRubberband.prototype.defaultOpacity=50;HoverIcons.prototype.inactiveOpacity=25;Format.prototype.showCloseButton=!1;EditorUi.prototype.closableScratchpad=!1;EditorUi.prototype.toolbarHeight="1"==urlParams.sketch?1:46;EditorUi.prototype.footerHeight=0;Graph.prototype.editAfterInsert="1"!=urlParams.sketch&&!mxClient.IS_IOS&&!mxClient.IS_ANDROID;
EditorUi.prototype.setDarkMode=function(b){this.spinner.spin(document.body,mxResources.get("working")+"...")&&window.setTimeout(mxUtils.bind(this,function(){this.spinner.stop();this.doSetDarkMode(b);null==urlParams.dark&&(mxSettings.settings.darkMode=b,mxSettings.save());this.fireEvent(new mxEventObject("darkModeChanged"))}),0)};var f=document.createElement("link");f.setAttribute("rel","stylesheet");f.setAttribute("href",STYLE_PATH+"/dark.css");f.setAttribute("charset","UTF-8");f.setAttribute("type",
@@ -3963,67 +3968,67 @@ new ParseDialog(d,"Insert from Text");d.showDialog(b.container,620,420,!0,!1);b.
b.init()}));var g=this.addPopupMenuCellEditItems;this.put("editCell",new Menu(mxUtils.bind(this,function(b,c){var d=this.editorUi.editor.graph,e=d.getSelectionCell();g.call(this,b,e,null,c);this.addMenuItems(b,["editTooltip"],c);d.model.isVertex(e)&&this.addMenuItems(b,["editGeometry"],c);this.addMenuItems(b,["-","edit"],c)})));this.addPopupMenuCellEditItems=function(b,c,d,e){b.addSeparator();this.addSubmenu("editCell",b,e,mxResources.get("edit"))};this.put("diagram",new Menu(mxUtils.bind(this,function(b,
c){var e=d.getCurrentFile();d.menus.addSubmenu("extras",b,c,mxResources.get("preferences"));b.addSeparator(c);if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)d.menus.addMenuItems(b,"new open - synchronize - save saveAs -".split(" "),c);else if("1"==urlParams.embed||d.mode==App.MODE_ATLAS){"1"!=urlParams.noSaveBtn&&"1"!=urlParams.embedInline&&d.menus.addMenuItems(b,["-","save"],c);if("1"==urlParams.saveAndExit||"1"==urlParams.noSaveBtn&&"0"!=urlParams.saveAndExit||d.mode==App.MODE_ATLAS)d.menus.addMenuItems(b,
["saveAndExit"],c),null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["revisionHistory"],c);b.addSeparator(c)}else d.mode==App.MODE_ATLAS?d.menus.addMenuItems(b,["save","synchronize","-"],c):"1"!=urlParams.noFileMenu&&(d.menus.addMenuItems(b,["new"],c),d.menus.addSubmenu("openFrom",b,c),isLocalStorage&&this.addSubmenu("openRecent",b,c),"1"!=urlParams.sketch&&(b.addSeparator(c),null!=e&&e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c),mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["synchronize"],c)),b.addSeparator(c),d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):"1"!=urlParams.noFileMenu&&d.menus.addSubmenu("importFrom",b,c);"1"!=urlParams.sketch&&(d.menus.addMenuItems(b,["-","outline"],c),d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],c));d.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),
-c);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&navigator.standalone||d.menus.addMenuItems(b,["print"],c);null!=e&&null!=d.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed||d.mode==App.MODE_ATLAS?"1"==urlParams.noExitBtn&&d.mode!=App.MODE_ATLAS||d.menus.addMenuItems(b,["-","exit"],c):"1"!=urlParams.noFileMenu&&
-d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],c):d.menus.addMenuItems(b,["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||
-null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,["publishLink"],c);d.mode!=App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(c),d.menus.addSubmenu("embed",
-b,c))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,e.isEnabled)),d.addInsertMenuItems(b,c,["formatSql","-","fromText","plantUml",
-"mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&"1"!=urlParams.extAuth&&d.mode!=App.MODE_ATLAS&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);d.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),c);"1"!=urlParams.embedInline&&("1"!=urlParams.embed&&(isLocalStorage||mxClient.IS_CHROMEAPP)&&d.mode!=App.MODE_ATLAS&&d.menus.addMenuItems(b,
-["-","showStartScreen","search","scratchpad"],c),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],c));b.addSeparator(c);d.mode!=App.MODE_ATLAS&&d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.mode!=App.MODE_ATLAS&&d.menus.addMenuItem(b,"plugins",c);d.mode!=App.MODE_ATLAS&&this.addMenuItems(b,["-","fullscreen"],c);(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&this.addMenuItems(b,["toggleDarkMode"],c);"1"==urlParams.sketch&&
-this.addMenuItems(b,["-","toggleSketchMode"],c);b.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(d.menus.addMenuItems(b,["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,
-arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,!1);b.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,c){for(var d=0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,
-mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(e,f){0<c.getSelectionCount()?(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):
-null!=d.parentNode&&d.parentNode.removeChild(d)}))};var F=!1;EditorUi.prototype.initFormatWindow=function(){if(!F){F=!0;this.formatWindow.window.setClosable(!1);var b=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){b.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width="240px",this.table.style.width="240px",this.div.style.left=Math.max(0,
-parseInt(this.div.style.left)-150)+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(b){mxEvent.getSource(b)==this.formatWindow.window.title&&this.formatWindow.window.toggleMinimized()}))}};var H=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(b,c,d){var e=m.menus.get(b),f=t.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),q);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";
-f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));m.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize="24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage=
-"url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition="right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign="top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle=
-"none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin="0px");null!=m.statusContainer?p.insertBefore(k,m.statusContainer):p.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(b){b.preventDefault()}));mxEvent.addListener(k,"click",
-function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign=
-"top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);
-return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&(V.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var c=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=c}q=p.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>e||"1"==urlParams.sketch,k=null;b||(k=d("diagram"));c=b?d("diagram",null,Editor.drawLogoImage):null;null!=c&&(k=c);
-g([k,f(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),b?Editor.shapesImage:null),f(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),b?Editor.formatImage:null)],b?60:null);c=d("insert",!0,b?F:null);g([c,f(mxResources.get("delete"),m.actions.get("delete").funct,null,mxResources.get("delete"),m.actions.get("delete"),b?Editor.trashImage:
-null)],b?60:null);411<=e&&(g([ia,da],60),520<=e&&g([ta,640<=e?f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",sa,Editor.zoomInImage):null,640<=e?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,Editor.zoomOutImage):null],60))}null!=k&&(mxEvent.disableContextMenu(k),mxEvent.addGestureListeners(k,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&m.appIconClicked(b)}),
-null,null));c=m.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==pa&&(c=t.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.className="geToolbarButton",c.style.backgroundImage="url("+Editor.globeImage+")",c.style.backgroundPosition="center center",c.style.backgroundRepeat="no-repeat",c.style.backgroundSize="24px 24px",c.style.position="absolute",c.style.height="24px",c.style.width="24px",c.style.zIndex="1",
-c.style.right="8px",c.style.cursor="pointer",c.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(c),pa=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=pa&&(pa.parentNode.removeChild(pa),pa=null))}H.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:null!=mxSettings.settings.darkMode?mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);
-var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";l.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(l);"1"==urlParams.sketch&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])c(this,!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&
-(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));var m=this;mxWindow.prototype.fit=function(){if(Editor.inlineFullscreen||null==m.embedViewport)mxUtils.fit(this.div);else{var b=parseInt(this.div.offsetLeft),c=parseInt(this.div.offsetWidth);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-c))+"px";b=parseInt(this.div.offsetTop);c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,
-m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=mxResources.get("untitledLibrary");var p=document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,
-p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();
-if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText="position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";
-p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText="position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?
-"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText="position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var y=document.createElement("div");y.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";m.titlebar.appendChild(y);l.appendChild(m.titlebar)}var B=
-m.menus.get("viewZoom"),F="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,S="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,V="1"==urlParams.sketch?document.createElement("div"):null,y=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()});m.addListener("darkModeChanged",y);m.addListener("sketchModeChanged",y);var oa=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)V.style.left="10px",V.style.top="10px",Q.style.left="10px",Q.style.top="60px",S.style.top="10px",S.style.right="12px",S.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),
-m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=
-c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}V.style.left=m.diagramContainer.offsetLeft+"px";V.style.top=m.diagramContainer.offsetTop-V.offsetHeight-4+"px";Q.style.display="";Q.style.left=m.diagramContainer.offsetLeft-Q.offsetWidth-4+"px";Q.style.top=m.diagramContainer.offsetTop+
-"px";S.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-S.offsetWidth+"px";S.style.top=V.style.top;S.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/
-2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=m.bottomResizer.style.visibility;p.style.display="none";V.style.visibility="";S.style.visibility=""}),fa=mxUtils.bind(this,function(){na.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:Editor.fullscreenImage)+")";this.diagramContainer.style.background=
-Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";oa()}),y=mxUtils.bind(this,function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);m.addListener("editInlineStart",y);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",y);m.addListener("editInlineStop",mxUtils.bind(this,function(b){m.diagramContainer.style.width=
-"10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";V.style.visibility="hidden";S.style.visibility="hidden";Q.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});
-if(null!=m.hoverIcons){var ka=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ka.apply(this,arguments)}}if(null!=n.freehand){var ra=n.freehand.createStyle;n.freehand.createStyle=function(b){return ra.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";S.className="geToolbarContainer";V.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var la=!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display=
-"inline-block"});mxEvent.addListener(p,"mouseleave",function(){la||(m.statusContainer.style.display="none")});var ja=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&
-"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();ja(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML='<img title="'+mxUtils.htmlEntities(mxResources.get(c))+
-'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",la=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",la=!1)}else m.statusContainer.style.display="inline-block",ja(null),la=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));P=d("diagram",null,Editor.menuImage);P.style.boxShadow="none";P.style.padding="6px";P.style.margin=
-"0px";V.appendChild(P);mxEvent.disableContextMenu(P);mxEvent.addGestureListeners(P,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);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 aa=document.createElement("a");aa.style.padding="0px";aa.style.boxShadow="none";aa.className="geMenuItem";aa.style.display="inline-block";aa.style.width="40px";aa.style.height="12px";aa.style.marginBottom="-2px";aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")";aa.style.backgroundPosition=
-"top center";aa.style.backgroundRepeat="no-repeat";aa.setAttribute("title","Minimize");var ba=!1,R=mxUtils.bind(this,function(){Q.innerHTML="";if(!ba){var b=function(b,d,e){b=f("",b.funct,null,d,b,e);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";Q.appendChild(b);mxUtils.br(Q);return b};c(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",
+null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["synchronize"],c)),b.addSeparator(c),d.menus.addSubmenu("save",b,c));d.menus.addSubmenu("exportAs",b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp?d.menus.addMenuItems(b,["import"],c):"1"!=urlParams.noFileMenu&&d.menus.addSubmenu("importFrom",b,c);b.addSeparator(c);"1"!=urlParams.sketch?d.menus.addMenuItems(b,["outline"],c):e.constructor==DriveFile&&d.menus.addMenuItems(b,["share"],c);d.commentsSupported()&&d.menus.addMenuItems(b,["comments"],
+c);d.menus.addMenuItems(b,"- findReplace layers tags - pageSetup".split(" "),c);"1"==urlParams.noFileMenu||mxClient.IS_IOS&&navigator.standalone||d.menus.addMenuItems(b,["print"],c);null!=e&&null!=d.fileNode&&"1"!=urlParams.embedInline&&(e=null!=e.getTitle()?e.getTitle():d.defaultFilename,/(\.html)$/i.test(e)||/(\.svg)$/i.test(e)||this.addMenuItems(b,["-","properties"]));b.addSeparator(c);d.menus.addSubmenu("help",b,c);"1"==urlParams.embed||d.mode==App.MODE_ATLAS?"1"==urlParams.noExitBtn&&d.mode!=
+App.MODE_ATLAS||d.menus.addMenuItems(b,["-","exit"],c):"1"!=urlParams.noFileMenu&&d.menus.addMenuItems(b,["-","close"])})));this.put("save",new Menu(mxUtils.bind(this,function(b,c){var e=d.getCurrentFile();null!=e&&e.constructor==DriveFile?d.menus.addMenuItems(b,["save","makeCopy","-","rename","moveToFolder"],c):(d.menus.addMenuItems(b,["save","saveAs","-","rename"],c),d.isOfflineApp()?navigator.onLine&&"1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&this.addMenuItems(b,["upload"],c):d.menus.addMenuItems(b,
+["makeCopy"],c));"1"!=urlParams.sketch||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||null==e||e.constructor==LocalFile||d.menus.addMenuItems(b,["-","synchronize"],c);d.menus.addMenuItems(b,["-","autosave"],c);null!=e&&e.isRevisionHistorySupported()&&d.menus.addMenuItems(b,["-","revisionHistory"],c)})));var k=this.get("exportAs");this.put("exportAs",new Menu(mxUtils.bind(this,function(b,c){k.funct(b,c);mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||d.menus.addMenuItems(b,["publishLink"],c);d.mode!=
+App.MODE_ATLAS&&"1"!=urlParams.extAuth&&(b.addSeparator(c),d.menus.addSubmenu("embed",b,c))})));var l=this.get("language");this.put("table",new Menu(mxUtils.bind(this,function(b,c){d.menus.addInsertTableCellItem(b,c)})));var m=this.get("importFrom");this.put("importFrom",new Menu(mxUtils.bind(this,function(b,c){m.funct(b,c);this.addMenuItems(b,["editDiagram"],c);"1"==urlParams.sketch&&(b.addSeparator(c),b.addItem(mxResources.get("csv")+"...",null,function(){d.showImportCsvDialog()},c,null,mxUtils.bind(e,
+e.isEnabled)),d.addInsertMenuItems(b,c,["formatSql","-","fromText","plantUml","mermaid"]))})));this.put("extras",new Menu(mxUtils.bind(this,function(b,c){"1"!=urlParams.embed&&"1"!=urlParams.extAuth&&d.mode!=App.MODE_ATLAS&&d.menus.addSubmenu("theme",b,c);null!=l&&d.menus.addSubmenu("language",b,c);d.menus.addSubmenu("units",b,c);d.menus.addMenuItems(b,"- pageScale ruler - scrollbars tooltips - copyConnect collapseExpand -".split(" "),c);"1"!=urlParams.embedInline&&("1"!=urlParams.embed&&(isLocalStorage||
+mxClient.IS_CHROMEAPP)&&d.mode!=App.MODE_ATLAS&&d.menus.addMenuItems(b,["-","showStartScreen","search","scratchpad"],c),"1"==urlParams.sketch&&null==urlParams.pages&&this.addMenuItems(b,["togglePagesVisible"],c));b.addSeparator(c);d.mode!=App.MODE_ATLAS&&d.menus.addMenuItem(b,"configuration",c);!d.isOfflineApp()&&isLocalStorage&&d.mode!=App.MODE_ATLAS&&d.menus.addMenuItem(b,"plugins",c);d.mode!=App.MODE_ATLAS&&this.addMenuItems(b,["-","fullscreen"],c);(Editor.isDarkMode()||!mxClient.IS_IE&&!mxClient.IS_IE11)&&
+this.addMenuItems(b,["toggleDarkMode"],c);"1"==urlParams.sketch&&this.addMenuItems(b,["-","toggleSketchMode"],c);b.addSeparator(c)})));this.put("insertAdvanced",new Menu(mxUtils.bind(this,function(b,c){d.menus.addMenuItems(b,"importText plantUml mermaid - formatSql importCsv - createShape editDiagram".split(" "),c)})));mxUtils.bind(this,function(){var b=this.get("insert"),c=b.funct;b.funct=function(b,e){"1"==urlParams.sketch?(d.menus.addMenuItems(b,["insertFreehand"],e),d.insertTemplateEnabled&&!d.isOffline()&&
+d.menus.addMenuItems(b,["insertTemplate"],e)):(c.apply(this,arguments),d.menus.addSubmenu("table",b,e),b.addSeparator(e));d.menus.addMenuItems(b,["-","toggleShapes"],e)}})();var n="horizontalFlow verticalFlow - horizontalTree verticalTree radialTree - organic circle".split(" "),p=function(b,c,e,f){b.addItem(e,null,mxUtils.bind(this,function(){var b=new CreateGraphDialog(d,e,f);d.showDialog(b.container,620,420,!0,!1);b.init()}),c)};this.put("insertLayout",new Menu(mxUtils.bind(this,function(b,c){for(var d=
+0;d<n.length;d++)"-"==n[d]?b.addSeparator(c):p(b,c,mxResources.get(n[d])+"...",n[d])})))};EditorUi.prototype.installFormatToolbar=function(b){var c=this.editor.graph,d=document.createElement("div");d.style.cssText="position:absolute;top:10px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:6px;white-space:nowrap;background-color:#fff;transform:translate(-50%, 0);left:50%;";c.getSelectionModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(e,f){0<c.getSelectionCount()?
+(b.appendChild(d),d.innerHTML="Selected: "+c.getSelectionCount()):null!=d.parentNode&&d.parentNode.removeChild(d)}))};var F=!1;EditorUi.prototype.initFormatWindow=function(){if(!F){F=!0;this.formatWindow.window.setClosable(!1);var b=this.formatWindow.window.toggleMinimized;this.formatWindow.window.toggleMinimized=function(){b.apply(this,arguments);this.minimized?(this.div.style.width="90px",this.table.style.width="90px",this.div.style.left=parseInt(this.div.style.left)+150+"px"):(this.div.style.width=
+"240px",this.table.style.width="240px",this.div.style.left=Math.max(0,parseInt(this.div.style.left)-150)+"px");this.fit()};mxEvent.addListener(this.formatWindow.window.title,"dblclick",mxUtils.bind(this,function(b){mxEvent.getSource(b)==this.formatWindow.window.title&&this.formatWindow.window.toggleMinimized()}))}};var H=EditorUi.prototype.init;EditorUi.prototype.init=function(){function d(b,c,d){var e=m.menus.get(b),f=t.addMenu(mxResources.get(b),mxUtils.bind(this,function(){e.funct.apply(this,arguments)}),
+q);f.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";f.style.display="inline-block";f.style.boxSizing="border-box";f.style.top="6px";f.style.marginRight="6px";f.style.height="30px";f.style.paddingTop="6px";f.style.paddingBottom="6px";f.style.cursor="pointer";f.setAttribute("title",mxResources.get(b));m.menus.menuCreated(e,f,"geMenuItem");null!=d?(f.style.backgroundImage="url("+d+")",f.style.backgroundPosition="center center",f.style.backgroundRepeat="no-repeat",f.style.backgroundSize=
+"24px 24px",f.style.width="34px",f.innerHTML=""):c||(f.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",f.style.backgroundPosition="right 6px center",f.style.backgroundRepeat="no-repeat",f.style.paddingRight="22px");return f}function f(b,c,d,e,f,g){var k=document.createElement("a");k.className="1"==urlParams.sketch?"geToolbarButton":"geMenuItem";k.style.display="inline-block";k.style.boxSizing="border-box";k.style.height="30px";k.style.padding="6px";k.style.position="relative";k.style.verticalAlign=
+"top";k.style.top="0px";"1"==urlParams.sketch&&(k.style.borderStyle="none",k.style.boxShadow="none",k.style.padding="6px",k.style.margin="0px");null!=m.statusContainer?p.insertBefore(k,m.statusContainer):p.appendChild(k);null!=g?(k.style.backgroundImage="url("+g+")",k.style.backgroundPosition="center center",k.style.backgroundRepeat="no-repeat",k.style.backgroundSize="24px 24px",k.style.width="34px"):mxUtils.write(k,b);mxEvent.addListener(k,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,
+function(b){b.preventDefault()}));mxEvent.addListener(k,"click",function(b){"disabled"!=k.getAttribute("disabled")&&c(b);mxEvent.consume(b)});null==d&&(k.style.marginRight="4px");null!=e&&k.setAttribute("title",e);null!=f&&(b=function(){f.isEnabled()?(k.removeAttribute("disabled"),k.style.cursor="pointer"):(k.setAttribute("disabled","disabled"),k.style.cursor="default")},f.addListener("stateChanged",b),n.addListener("enabledChanged",b),b());return k}function g(b,c,d){d=document.createElement("div");
+d.className="geMenuItem";d.style.display="inline-block";d.style.verticalAlign="top";d.style.marginRight="6px";d.style.padding="0 4px 0 4px";d.style.height="30px";d.style.position="relative";d.style.top="0px";"1"==urlParams.sketch&&(d.style.boxShadow="none");for(var e=0;e<b.length;e++)null!=b[e]&&("1"==urlParams.sketch&&(b[e].style.padding="10px 8px",b[e].style.width="30px"),b[e].style.margin="0px",b[e].style.boxShadow="none",d.appendChild(b[e]));null!=c&&mxUtils.setOpacity(d,c);null!=m.statusContainer&&
+"1"!=urlParams.sketch?p.insertBefore(d,m.statusContainer):p.appendChild(d);return d}function k(){if("1"==urlParams.sketch)"1"!=urlParams.embedInline&&(V.style.left=58>Q.offsetTop-Q.offsetHeight/2?"70px":"10px");else{for(var b=p.firstChild;null!=b;){var c=b.nextSibling;"geMenuItem"!=b.className&&"geItem"!=b.className||b.parentNode.removeChild(b);b=c}q=p.firstChild;e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var b=1E3>e||"1"==urlParams.sketch,k=null;b||(k=d("diagram"));
+c=b?d("diagram",null,Editor.drawLogoImage):null;null!=c&&(k=c);g([k,f(mxResources.get("shapes"),m.actions.get("toggleShapes").funct,null,mxResources.get("shapes"),m.actions.get("image"),b?Editor.shapesImage:null),f(mxResources.get("format"),m.actions.get("toggleFormat").funct,null,mxResources.get("format")+" ("+m.actions.get("formatPanel").shortcut+")",m.actions.get("image"),b?Editor.formatImage:null)],b?60:null);c=d("insert",!0,b?F:null);g([c,f(mxResources.get("delete"),m.actions.get("delete").funct,
+null,mxResources.get("delete"),m.actions.get("delete"),b?Editor.trashImage:null)],b?60:null);411<=e&&(g([ia,da],60),520<=e&&g([ta,640<=e?f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +)",sa,Editor.zoomInImage):null,640<=e?f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -)",W,Editor.zoomOutImage):null],60))}null!=k&&(mxEvent.disableContextMenu(k),mxEvent.addGestureListeners(k,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||
+mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&m.appIconClicked(b)}),null,null));c=m.menus.get("language");null!=c&&!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&600<=e&&"1"!=urlParams.sketch?(null==pa&&(c=t.addMenu("",c.funct),c.setAttribute("title",mxResources.get("language")),c.className="geToolbarButton",c.style.backgroundImage="url("+Editor.globeImage+")",c.style.backgroundPosition="center center",c.style.backgroundRepeat="no-repeat",c.style.backgroundSize="24px 24px",c.style.position=
+"absolute",c.style.height="24px",c.style.width="24px",c.style.zIndex="1",c.style.right="8px",c.style.cursor="pointer",c.style.top="1"==urlParams.embed?"12px":"11px",p.appendChild(c),pa=c),m.buttonContainer.style.paddingRight="34px"):(m.buttonContainer.style.paddingRight="4px",null!=pa&&(pa.parentNode.removeChild(pa),pa=null))}H.apply(this,arguments);"1"!=urlParams.embedInline&&this.doSetDarkMode(null!=urlParams.dark?1==urlParams.dark&&!mxClient.IS_IE&&!mxClient.IS_IE11:null!=mxSettings.settings.darkMode?
+mxSettings.settings.darkMode:window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches);var l=document.createElement("div");l.style.cssText="position:absolute;left:0px;right:0px;top:0px;overflow-y:auto;overflow-x:hidden;";l.style.bottom="1"!=urlParams.embed||"1"==urlParams.libraries?"63px":"32px";this.sidebar=this.createSidebar(l);"1"==urlParams.sketch&&this.toggleScratchpad();if("1"!=urlParams.sketch&&1E3<=e||null!=urlParams.clibs||null!=urlParams.libs||null!=urlParams["search-shapes"])c(this,
+!0),null!=this.sidebar&&null!=urlParams["search-shapes"]&&null!=this.sidebar.searchShapes&&(this.sidebar.searchShapes(urlParams["search-shapes"]),this.sidebar.showEntries("search"));var m=this;mxWindow.prototype.fit=function(){if(Editor.inlineFullscreen||null==m.embedViewport)mxUtils.fit(this.div);else{var b=parseInt(this.div.offsetLeft),c=parseInt(this.div.offsetWidth);this.div.style.left=Math.max(m.embedViewport.x,Math.min(b,m.embedViewport.x+m.embedViewport.width-c))+"px";b=parseInt(this.div.offsetTop);
+c=parseInt(this.div.offsetHeight);this.div.style.top=Math.max(m.embedViewport.y,Math.min(b,m.embedViewport.y+m.embedViewport.height-c))+"px"}};this.keyHandler.bindAction(75,!0,"toggleShapes",!0);("1"==urlParams.sketch||1E3<=e)&&"1"!=urlParams.embedInline&&(b(this,!0),"1"==urlParams.sketch&&(this.initFormatWindow(),this.formatWindow.window.toggleMinimized()));var m=this,n=m.editor.graph;m.toolbar=this.createToolbar(m.createDiv("geToolbar"));m.defaultLibraryName=mxResources.get("untitledLibrary");var p=
+document.createElement("div");p.className="geMenubarContainer";var q=null,t=new Menubar(m,p);m.statusContainer=m.createStatusContainer();m.statusContainer.style.position="relative";m.statusContainer.style.maxWidth="";m.statusContainer.style.marginTop="7px";m.statusContainer.style.marginLeft="6px";m.statusContainer.style.color="gray";m.statusContainer.style.cursor="default";var u=m.hideCurrentMenu;m.hideCurrentMenu=function(){u.apply(this,arguments);this.editor.graph.popupMenuHandler.hideMenu()};var v=
+m.descriptorChanged;m.descriptorChanged=function(){v.apply(this,arguments);var b=m.getCurrentFile();if(null!=b&&null!=b.getTitle()){var c=b.getMode();"google"==c?c="googleDrive":"github"==c?c="gitHub":"gitlab"==c?c="gitLab":"onedrive"==c&&(c="oneDrive");c=mxResources.get(c);p.setAttribute("title",b.getTitle()+(null!=c?" ("+c+")":""))}else p.removeAttribute("title")};m.setStatusText(m.editor.getStatus());p.appendChild(m.statusContainer);m.buttonContainer=document.createElement("div");m.buttonContainer.style.cssText=
+"position:absolute;right:0px;padding-right:34px;top:10px;white-space:nowrap;padding-top:2px;background-color:inherit;";p.appendChild(m.buttonContainer);m.menubarContainer=m.buttonContainer;m.tabContainer=document.createElement("div");m.tabContainer.className="geTabContainer";m.tabContainer.style.cssText="position:absolute;left:0px;right:0px;bottom:0px;height:30px;white-space:nowrap;margin-bottom:-2px;visibility:hidden;";var l=m.diagramContainer.parentNode,x=document.createElement("div");x.style.cssText=
+"position:absolute;top:0px;left:0px;right:0px;bottom:0px;overflow:hidden;";m.diagramContainer.style.top="1"==urlParams.sketch?"0px":"47px";if("1"==urlParams.winCtrls&&"1"==urlParams.sketch){x.style.top="20px";m.titlebar=document.createElement("div");m.titlebar.style.cssText="position:absolute;top:0px;left:0px;right:0px;height:20px;overflow:hidden;box-shadow: 0px 0px 2px #c0c0c0;";var y=document.createElement("div");y.style.cssText="max-width: calc(100% - 100px);text-overflow: ellipsis;user-select:none;height:20px;margin: 2px 10px;font-size: 12px;white-space: nowrap;overflow: hidden;";
+m.titlebar.appendChild(y);l.appendChild(m.titlebar)}var B=m.menus.get("viewZoom"),F="1"!=urlParams.sketch?Editor.plusImage:Editor.shapesImage,S="1"==urlParams.sketch?document.createElement("div"):null,Q="1"==urlParams.sketch?document.createElement("div"):null,V="1"==urlParams.sketch?document.createElement("div"):null,y=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()});m.addListener("darkModeChanged",y);m.addListener("sketchModeChanged",y);var oa=mxUtils.bind(this,function(){if(Editor.inlineFullscreen)V.style.left="10px",V.style.top="10px",Q.style.left="10px",Q.style.top="60px",S.style.top="10px",S.style.right="12px",S.style.left="",m.diagramContainer.setAttribute("data-bounds",m.diagramContainer.style.top+" "+m.diagramContainer.style.left+
+" "+m.diagramContainer.style.width+" "+m.diagramContainer.style.height),m.diagramContainer.style.top="0px",m.diagramContainer.style.left="0px",m.diagramContainer.style.bottom="0px",m.diagramContainer.style.right="0px",m.diagramContainer.style.width="",m.diagramContainer.style.height="";else{var b=m.diagramContainer.getAttribute("data-bounds");if(null!=b){m.diagramContainer.style.background="transparent";m.diagramContainer.removeAttribute("data-bounds");var c=n.getGraphBounds(),b=b.split(" ");m.diagramContainer.style.top=
+b[0];m.diagramContainer.style.left=b[1];m.diagramContainer.style.width=c.width+50+"px";m.diagramContainer.style.height=c.height+46+"px";m.diagramContainer.style.bottom="";m.diagramContainer.style.right="";(window.opener||window.parent).postMessage(JSON.stringify({event:"resize",rect:m.diagramContainer.getBoundingClientRect()}),"*");m.refresh()}V.style.left=m.diagramContainer.offsetLeft+"px";V.style.top=m.diagramContainer.offsetTop-V.offsetHeight-4+"px";Q.style.display="";Q.style.left=m.diagramContainer.offsetLeft-
+Q.offsetWidth-4+"px";Q.style.top=m.diagramContainer.offsetTop+"px";S.style.left=m.diagramContainer.offsetLeft+m.diagramContainer.offsetWidth-S.offsetWidth+"px";S.style.top=V.style.top;S.style.right="";m.bottomResizer.style.left=m.diagramContainer.offsetLeft+(m.diagramContainer.offsetWidth-m.bottomResizer.offsetWidth)/2+"px";m.bottomResizer.style.top=m.diagramContainer.offsetTop+m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight/2-1+"px";m.rightResizer.style.left=m.diagramContainer.offsetLeft+
+m.diagramContainer.offsetWidth-m.rightResizer.offsetWidth/2-1+"px";m.rightResizer.style.top=m.diagramContainer.offsetTop+(m.diagramContainer.offsetHeight-m.bottomResizer.offsetHeight)/2+"px"}m.bottomResizer.style.visibility=Editor.inlineFullscreen?"hidden":"";m.rightResizer.style.visibility=m.bottomResizer.style.visibility;p.style.display="none";V.style.visibility="";S.style.visibility=""}),fa=mxUtils.bind(this,function(){na.style.backgroundImage="url("+(Editor.inlineFullscreen?Editor.fullscreenExitImage:
+Editor.fullscreenImage)+")";this.diagramContainer.style.background=Editor.inlineFullscreen?Editor.isDarkMode()?Editor.darkColor:"#ffffff":"transparent";oa()}),y=mxUtils.bind(this,function(){fa();b(m,!0);m.initFormatWindow();var c=this.diagramContainer.getBoundingClientRect();this.formatWindow.window.setLocation(c.x+c.width+4,c.y)});m.addListener("inlineFullscreenChanged",fa);m.addListener("editInlineStart",y);"1"==urlParams.embedInline&&m.addListener("darkModeChanged",y);m.addListener("editInlineStop",
+mxUtils.bind(this,function(b){m.diagramContainer.style.width="10px";m.diagramContainer.style.height="10px";m.diagramContainer.style.border="";m.bottomResizer.style.visibility="hidden";m.rightResizer.style.visibility="hidden";V.style.visibility="hidden";S.style.visibility="hidden";Q.style.display="none"}));Graph.touchStyle&&(n.panningHandler.isPanningTrigger=function(b){var c=b.getEvent();return null==b.getState()&&!mxEvent.isMouseEvent(c)&&!n.freehand.isDrawing()||mxEvent.isPopupTrigger(c)&&(null==
+b.getState()||mxEvent.isControlDown(c)||mxEvent.isShiftDown(c))});if(null!=m.hoverIcons){var ka=m.hoverIcons.update;m.hoverIcons.update=function(){n.freehand.isDrawing()||ka.apply(this,arguments)}}if(null!=n.freehand){var ra=n.freehand.createStyle;n.freehand.createStyle=function(b){return ra.apply(this,arguments)+"sketch=0;"}}if("1"==urlParams.sketch){Q.className="geToolbarContainer";S.className="geToolbarContainer";V.className="geToolbarContainer";p.className="geToolbarContainer";m.picker=Q;var la=
+!1;mxEvent.addListener(p,"mouseenter",function(){m.statusContainer.style.display="inline-block"});mxEvent.addListener(p,"mouseleave",function(){la||(m.statusContainer.style.display="none")});var ja=mxUtils.bind(this,function(b){null!=m.notificationBtn&&(null!=b?m.notificationBtn.setAttribute("title",b):m.notificationBtn.removeAttribute("title"))});"1"!=urlParams.embed?(p.style.visibility=14>p.clientWidth?"hidden":"",m.editor.addListener("statusChanged",mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus());
+if(0==m.statusContainer.children.length||1==m.statusContainer.children.length&&"function"===typeof m.statusContainer.firstChild.getAttribute&&null==m.statusContainer.firstChild.getAttribute("class")){var b=null!=m.statusContainer.firstChild&&"function"===typeof m.statusContainer.firstChild.getAttribute?m.statusContainer.firstChild.getAttribute("title"):m.editor.getStatus();ja(b);var c=m.getCurrentFile(),c=null!=c?c.savingStatusKey:DrawioFile.prototype.savingStatusKey;b==mxResources.get(c)+"..."?(m.statusContainer.innerHTML=
+'<img title="'+mxUtils.htmlEntities(mxResources.get(c))+'..."src="'+Editor.tailSpin+'">',m.statusContainer.style.display="inline-block",la=!0):6<m.buttonContainer.clientWidth&&(m.statusContainer.style.display="none",la=!1)}else m.statusContainer.style.display="inline-block",ja(null),la=!0;p.style.visibility=12<p.clientWidth?"":"hidden"}))):m.editor.addListener("statusChanged",mxUtils.bind(this,function(){p.style.visibility=16<p.clientWidth?"":"hidden"}));O=d("diagram",null,Editor.menuImage);O.style.boxShadow=
+"none";O.style.padding="6px";O.style.margin="0px";V.appendChild(O);mxEvent.disableContextMenu(O);mxEvent.addGestureListeners(O,mxUtils.bind(this,function(b){(mxEvent.isShiftDown(b)||mxEvent.isAltDown(b)||mxEvent.isMetaDown(b)||mxEvent.isControlDown(b)||mxEvent.isPopupTrigger(b))&&this.appIconClicked(b)}),null,null);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 aa=document.createElement("a");aa.style.padding="0px";aa.style.boxShadow="none";aa.className="geMenuItem";aa.style.display="inline-block";aa.style.width="40px";aa.style.height="12px";aa.style.marginBottom="-2px";aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+
+")";aa.style.backgroundPosition="top center";aa.style.backgroundRepeat="no-repeat";aa.setAttribute("title","Minimize");var ba=!1,R=mxUtils.bind(this,function(){Q.innerHTML="";if(!ba){var b=function(b,d,e){b=f("",b.funct,null,d,b,e);b.style.width="40px";b.style.opacity="0.7";return c(b,null,"pointer")},c=function(b,c,d){null!=c&&b.setAttribute("title",c);b.style.cursor=null!=d?d:"default";b.style.margin="2px 0px";Q.appendChild(b);mxUtils.br(Q);return b};c(m.sidebar.createVertexTemplate("text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;",
60,30,"Text",mxResources.get("text"),!0,!1,null,!0,!0),mxResources.get("text")+" ("+Editor.ctrlKey+"+Shift+X)");c(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;shadow=1;size=20;pointerEvents=1;",140,160,"",mxResources.get("note"),!0,!1,null,!0),mxResources.get("note"));c(m.sidebar.createVertexTemplate("rounded=0;whiteSpace=wrap;html=1;",
160,80,"",mxResources.get("rectangle"),!0,!1,null,!0),mxResources.get("rectangle")+" ("+Editor.ctrlKey+"+K)");c(m.sidebar.createVertexTemplate("ellipse;whiteSpace=wrap;html=1;",160,100,"",mxResources.get("ellipse"),!0,!1,null,!0),mxResources.get("ellipse"));(function(){var b=new mxCell("",new mxGeometry(0,0,n.defaultEdgeLength,0),"edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;");b.geometry.setTerminalPoint(new mxPoint(0,0),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,0),!1);
b.geometry.points=[];b.geometry.relative=!0;b.edge=!0;c(m.sidebar.createEdgeTemplateFromCells([b],b.geometry.width,b.geometry.height,mxResources.get("line"),!0,null,!0,!1),mxResources.get("line"));b=b.clone();b.style="edgeStyle=none;orthogonalLoop=1;jettySize=auto;html=1;shape=flexArrow;rounded=1;startSize=8;endSize=8;";b.geometry.width=n.defaultEdgeLength+20;b.geometry.setTerminalPoint(new mxPoint(0,20),!0);b.geometry.setTerminalPoint(new mxPoint(b.geometry.width,20),!1);b=c(m.sidebar.createEdgeTemplateFromCells([b],
-b.geometry.width,40,mxResources.get("arrow"),!0,null,!0,!1),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(m.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",F);P=d("table",null,Editor.calendarImage);P.style.boxShadow="none";P.style.opacity="0.7";P.style.padding="6px";
-P.style.margin="0px";P.style.width="37px";c(P,null,"pointer");b(m.actions.get("insertTemplate"),mxResources.get("template"),Editor.addImage)}"1"!=urlParams.embedInline&&Q.appendChild(aa)});mxEvent.addListener(aa,"click",mxUtils.bind(this,function(){ba?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",aa.style.width="40px",aa.style.height=
+b.geometry.width,40,mxResources.get("arrow"),!0,null,!0,!1),mxResources.get("arrow"));b.style.borderBottom="1px solid "+(Editor.isDarkMode()?"#505050":"lightgray");b.style.paddingBottom="14px";b.style.marginBottom="14px"})();b(m.actions.get("insertFreehand"),mxResources.get("freehand"),Editor.freehandImage);var e=m.actions.get("toggleShapes");b(e,mxResources.get("shapes")+" ("+e.shortcut+")",F);O=d("table",null,Editor.calendarImage);O.style.boxShadow="none";O.style.opacity="0.7";O.style.padding="6px";
+O.style.margin="0px";O.style.width="37px";c(O,null,"pointer");b(m.actions.get("insertTemplate"),mxResources.get("template"),Editor.addImage)}"1"!=urlParams.embedInline&&Q.appendChild(aa)});mxEvent.addListener(aa,"click",mxUtils.bind(this,function(){ba?(mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, -50%)"),Q.style.padding="8px 6px 4px",Q.style.top="50%",Q.style.bottom="",Q.style.height="",aa.style.backgroundImage="url("+mxWindow.prototype.normalizeImage+")",aa.style.width="40px",aa.style.height=
"12px",aa.setAttribute("title","Minimize"),ba=!1,R()):(Q.innerHTML="",Q.appendChild(aa),mxUtils.setPrefixedStyle(Q.style,"transform","translate(0, 0)"),Q.style.top="",Q.style.bottom="12px",Q.style.padding="0px",Q.style.height="24px",aa.style.height="24px",aa.style.backgroundImage="url("+Editor.plusImage+")",aa.setAttribute("title",mxResources.get("insert")),aa.style.width="24px",ba=!0)}));R();m.addListener("darkModeChanged",R);m.addListener("sketchModeChanged",R)}else m.editor.addListener("statusChanged",
mxUtils.bind(this,function(){m.setStatusText(m.editor.getStatus())}));if(null!=B){var y=function(b){n.popupMenuHandler.hideMenu();mxEvent.isAltDown(b)||mxEvent.isShiftDown(b)?m.actions.get("customZoom").funct():m.actions.get("smartFit").funct()},sa=m.actions.get("zoomIn"),W=m.actions.get("zoomOut"),X=m.actions.get("resetView"),ma=m.actions.get("fullscreen");m.actions.get("toggleDarkMode");var qa=m.actions.get("undo"),T=m.actions.get("redo"),ia=f("",qa.funct,null,mxResources.get("undo")+" ("+qa.shortcut+
")",qa,Editor.undoImage),da=f("",T.funct,null,mxResources.get("redo")+" ("+T.shortcut+")",T,Editor.redoImage),na=f("",ma.funct,null,mxResources.get("fullscreen"),ma,Editor.fullscreenImage);if(null!=S){B=function(){ea.style.display=null!=m.pages&&("1"==urlParams.pages||1<m.pages.length||Editor.pagesVisible)?"inline-block":"none"};na.parentNode.removeChild(na);var ha=m.actions.get("delete"),ua=f("",ha.funct,null,mxResources.get("delete"),ha,Editor.trashImage);ua.style.opacity="0.1";V.appendChild(ua);
ha.addListener("stateChanged",function(){ua.style.opacity=ha.enabled?"":"0.1"});X=function(){ia.style.display=0<m.editor.undoManager.history.length||n.isEditing()?"inline-block":"none";da.style.display=ia.style.display;ia.style.opacity=qa.enabled?"":"0.1";da.style.opacity=T.enabled?"":"0.1"};V.appendChild(ia);V.appendChild(da);qa.addListener("stateChanged",X);T.addListener("stateChanged",X);X();null!=urlParams.layers&&(X=m.actions.get("layers"),X=f("",X.funct,null,mxResources.get("layers"),X,Editor.layersImage),
-X.style.opacity="0.4",S.appendChild(X));null!=urlParams.tags&&(X=m.actions.get("tags"),X=f("",X.funct,null,mxResources.get("tags"),X,Editor.tagsImage),X.style.opacity="0.4",S.appendChild(X));X=m.actions.get("outline");X=f("",X.funct,null,mxResources.get("outline"),X,Editor.outlineImage);S.appendChild(X);X=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);S.appendChild(X);var P=document.createElement("div");P.innerHTML="100%";P.setAttribute("title",
-mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");P.style.display="inline-block";P.style.cursor="pointer";P.style.textAlign="center";P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.verticalAlign="top";P.style.padding="6px 0";P.style.fontSize="14px";P.style.width="40px";P.style.opacity="0.4";S.appendChild(P);mxEvent.addListener(P,"click",y);y=f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",sa,
+X.style.opacity="0.4",S.appendChild(X));null!=urlParams.tags&&(X=m.actions.get("tags"),X=f("",X.funct,null,mxResources.get("tags"),X,Editor.tagsImage),X.style.opacity="0.4",S.appendChild(X));X=m.actions.get("outline");X=f("",X.funct,null,mxResources.get("outline"),X,Editor.outlineImage);S.appendChild(X);X=f("",W.funct,!0,mxResources.get("zoomOut")+" ("+Editor.ctrlKey+" -/Alt+Mousewheel)",W,Editor.zoomOutImage);S.appendChild(X);var O=document.createElement("div");O.innerHTML="100%";O.setAttribute("title",
+mxResources.get("fitWindow")+"/"+mxResources.get("resetView")+" (Enter)");O.style.display="inline-block";O.style.cursor="pointer";O.style.textAlign="center";O.style.whiteSpace="nowrap";O.style.paddingRight="10px";O.style.textDecoration="none";O.style.verticalAlign="top";O.style.padding="6px 0";O.style.fontSize="14px";O.style.width="40px";O.style.opacity="0.4";S.appendChild(O);mxEvent.addListener(O,"click",y);y=f("",sa.funct,!0,mxResources.get("zoomIn")+" ("+Editor.ctrlKey+" +/Alt+Mousewheel)",sa,
Editor.zoomInImage);S.appendChild(y);"1"==urlParams.embedInline&&(S.appendChild(na),y=m.actions.get("exit"),S.appendChild(f("",y.funct,null,mxResources.get("exit"),y,Editor.closeImage)));var ea=this.createPageMenuTab(!1);ea.style.display="none";ea.style.position="";ea.style.marginLeft="";ea.style.top="";ea.style.left="";ea.style.height="100%";ea.style.lineHeight="";ea.style.borderStyle="none";ea.style.padding="3px 0";ea.style.margin="0px";ea.style.background="";ea.style.border="";ea.style.boxShadow=
"none";ea.style.verticalAlign="top";ea.firstChild.style.height="100%";ea.firstChild.style.opacity="0.6";ea.firstChild.style.margin="0px";S.appendChild(ea);m.addListener("fileDescriptorChanged",B);m.addListener("pagesVisibleChanged",B);B();m.tabContainer.style.visibility="hidden";p.style.cssText="position:absolute;right:14px;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;";
V.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;";S.style.cssText="position:absolute;right:14px;bottom:14px;height:28px;z-index:1;border-radius:4px;box-shadow:0px 0px 3px 1px #d1d1d1;padding:8px;white-space:nowrap;user-select:none;";x.appendChild(V);x.appendChild(S);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;";
-x.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ta=f("",y,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",X,Editor.zoomFitImage);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";P=t.addMenu("100%",B.funct);P.setAttribute("title",mxResources.get("zoom")+
-" (Alt+Mousewheel)");P.style.whiteSpace="nowrap";P.style.paddingRight="10px";P.style.textDecoration="none";P.style.textDecoration="none";P.style.overflow="hidden";P.style.visibility="hidden";P.style.textAlign="center";P.style.cursor="pointer";P.style.height=parseInt(m.tabContainerHeight)-1+"px";P.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";P.style.position="absolute";P.style.display="block";P.style.fontSize="12px";P.style.width="59px";P.style.right="0px";P.style.bottom="0px";P.style.backgroundImage=
-"url("+mxWindow.prototype.minimizeImage+")";P.style.backgroundPosition="right 6px center";P.style.backgroundRepeat="no-repeat";x.appendChild(P)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=Math.round(100*m.editor.graph.view.scale)+"%"});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);m.editor.addListener("resetGraphView",c);m.editor.addListener("pageSelected",c)})(P);var ya=m.setGraphEnabled;m.setGraphEnabled=function(){ya.apply(this,arguments);null!=this.tabContainer&&(P.style.visibility=
+x.appendChild(Q);window.setTimeout(function(){mxUtils.setPrefixedStyle(Q.style,"transition","transform .3s ease-out")},0);"1"==urlParams["format-toolbar"]&&this.installFormatToolbar(x)}else{var ta=f("",y,!0,mxResources.get("fit")+" ("+Editor.ctrlKey+"+H)",X,Editor.zoomFitImage);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";O=t.addMenu("100%",B.funct);O.setAttribute("title",mxResources.get("zoom")+
+" (Alt+Mousewheel)");O.style.whiteSpace="nowrap";O.style.paddingRight="10px";O.style.textDecoration="none";O.style.textDecoration="none";O.style.overflow="hidden";O.style.visibility="hidden";O.style.textAlign="center";O.style.cursor="pointer";O.style.height=parseInt(m.tabContainerHeight)-1+"px";O.style.lineHeight=parseInt(m.tabContainerHeight)+1+"px";O.style.position="absolute";O.style.display="block";O.style.fontSize="12px";O.style.width="59px";O.style.right="0px";O.style.bottom="0px";O.style.backgroundImage=
+"url("+mxWindow.prototype.minimizeImage+")";O.style.backgroundPosition="right 6px center";O.style.backgroundRepeat="no-repeat";x.appendChild(O)}(function(b){var c=mxUtils.bind(this,function(){b.innerHTML=Math.round(100*m.editor.graph.view.scale)+"%"});m.editor.graph.view.addListener(mxEvent.EVENT_SCALE,c);m.editor.addListener("resetGraphView",c);m.editor.addListener("pageSelected",c)})(O);var ya=m.setGraphEnabled;m.setGraphEnabled=function(){ya.apply(this,arguments);null!=this.tabContainer&&(O.style.visibility=
this.tabContainer.style.visibility,this.diagramContainer.style.bottom="hidden"!=this.tabContainer.style.visibility&&null==S?this.tabContainerHeight+"px":"0px")}}x.appendChild(p);x.appendChild(m.diagramContainer);l.appendChild(x);m.updateTabContainer();null==S&&x.appendChild(m.tabContainer);var pa=null;k();mxEvent.addListener(window,"resize",function(){k();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()});if("1"==urlParams.embedInline){document.body.style.cursor="text";Q.style.transform="";mxEvent.addGestureListeners(m.diagramContainer.parentNode,function(b){mxEvent.getSource(b)==m.diagramContainer.parentNode&&(m.embedExitPoint=new mxPoint(mxEvent.getClientX(b),
mxEvent.getClientY(b)),m.sendEmbeddedSvgExport())});l=document.createElement("div");l.style.position="absolute";l.style.width="10px";l.style.height="10px";l.style.borderRadius="5px";l.style.border="1px solid gray";l.style.background="#ffffff";l.style.cursor="row-resize";m.diagramContainer.parentNode.appendChild(l);m.bottomResizer=l;var xa=null,za=null,Ba=null,Ea=null;mxEvent.addGestureListeners(l,function(b){Ea=parseInt(m.diagramContainer.style.height);za=mxEvent.getClientY(b);n.popupMenuHandler.hideMenu();
diff --git a/src/main/webapp/mxgraph/mxClient.js b/src/main/webapp/mxgraph/mxClient.js
index a7f0155c..cb87f114 100644
--- a/src/main/webapp/mxgraph/mxClient.js
+++ b/src/main/webapp/mxgraph/mxClient.js
@@ -1,4 +1,4 @@
-var mxClient={VERSION:"16.0.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/"),
+var mxClient={VERSION:"16.0.3",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"),
IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor),
IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform),IS_WEBVIEW:/((iPhone|iPod|iPad).*AppleWebKit(?!.*Version)|; wv)/i.test(navigator.userAgent),IS_GC:/Google Inc/.test(navigator.vendor),IS_CHROMEAPP:null!=window.chrome&&null!=chrome.app&&null!=chrome.app.runtime,IS_FF:"undefined"!==typeof InstallTrigger,IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&
0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS||"[object SVGForeignObjectElement]"!==document.createElementNS("http://www.w3.org/2000/svg","foreignObject").toString()||0<=navigator.userAgent.indexOf("Opera/"),
@@ -101,16 +101,17 @@ STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT
STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",
STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",
STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",
-STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",
-STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",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",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};
+STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_SWIMLANE_HEAD:"swimlaneHead",STYLE_SWIMLANE_BODY:"swimlaneBody",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",
+STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",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",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};
@@ -434,10 +435,9 @@ l/2-k,d.y-l-k/2);a.close();a.moveTo(d.x-k,d.y-l);a.lineTo(d.x-2*k-.5*l,d.y+.5*k-
mxActor.prototype.redrawPath=function(a,b,c,d,e){b=d/3;a.moveTo(0,e);a.curveTo(0,3*e/5,0,2*e/5,d/2,2*e/5);a.curveTo(d/2-b,2*e/5,d/2-b,0,d/2,0);a.curveTo(d/2+b,0,d/2+b,2*e/5,d/2,2*e/5);a.curveTo(d,2*e/5,d,3*e/5,d,e);a.close()};function mxCloud(a,b,c,d){mxActor.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxCloud,mxActor);
mxCloud.prototype.redrawPath=function(a,b,c,d,e){a.moveTo(.25*d,.25*e);a.curveTo(.05*d,.25*e,0,.5*e,.16*d,.55*e);a.curveTo(0,.66*e,.18*d,.9*e,.31*d,.8*e);a.curveTo(.4*d,e,.7*d,e,.8*d,.8*e);a.curveTo(d,.8*e,d,.6*e,.875*d,.5*e);a.curveTo(d,.3*e,.8*d,.1*e,.625*d,.2*e);a.curveTo(.5*d,.05*e,.3*d,.05*e,.25*d,.25*e);a.close()};function mxRectangleShape(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxRectangleShape,mxShape);
mxRectangleShape.prototype.isHtmlAllowed=function(){var a=!0;null!=this.style&&(a="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));return!this.isRounded&&!this.glass&&0==this.rotation&&(a||null!=this.fill&&this.fill!=mxConstants.NONE)};
-mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(this.isRounded){var f;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f));a.roundrect(b,c,d,e,f,f)}else a.rect(b,c,d,e);a.fillAndStroke()};
-mxRectangleShape.prototype.isRoundable=function(a,b,c,d,e){return!0};mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){this.glass&&!this.outline&&null!=this.fill&&this.fill!=mxConstants.NONE&&this.paintGlassEffect(a,b,c,d,e,this.getArcSize(d+this.strokewidth,e+this.strokewidth))};function mxEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxEllipse,mxShape);
-mxEllipse.prototype.paintVertexShape=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};function mxDoubleEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxDoubleEllipse,mxShape);mxDoubleEllipse.prototype.paintBackground=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};
-mxDoubleEllipse.prototype.paintForeground=function(a,b,c,d,e){if(!this.outline){var f=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(d/5,e/5)));d-=2*f;e-=2*f;0<d&&0<e&&a.ellipse(b+f,c+f,d,e);a.stroke()}};
+mxRectangleShape.prototype.paintBackground=function(a,b,c,d,e){if(this.isRounded){var f;"1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0)?f=Math.min(d/2,Math.min(e/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2)):(f=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,f=Math.min(d*f,e*f));a.roundrect(b,c,d,e,f,f)}else a.rect(b,c,d,e);a.fillAndStroke()};mxRectangleShape.prototype.isRoundable=function(){return!0};
+mxRectangleShape.prototype.paintForeground=function(a,b,c,d,e){this.glass&&!this.outline&&null!=this.fill&&this.fill!=mxConstants.NONE&&this.paintGlassEffect(a,b,c,d,e,this.getArcSize(d+this.strokewidth,e+this.strokewidth))};function mxEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxEllipse,mxShape);mxEllipse.prototype.paintVertexShape=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};
+function mxDoubleEllipse(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxDoubleEllipse,mxShape);mxDoubleEllipse.prototype.paintBackground=function(a,b,c,d,e){a.ellipse(b,c,d,e);a.fillAndStroke()};mxDoubleEllipse.prototype.paintForeground=function(a,b,c,d,e){if(!this.outline){var f=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(d/5,e/5)));d-=2*f;e-=2*f;0<d&&0<e&&a.ellipse(b+f,c+f,d,e);a.stroke()}};
mxDoubleEllipse.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,mxConstants.STYLE_MARGIN,Math.min(3+this.strokewidth,Math.min(a.width/5/this.scale,a.height/5/this.scale)))*this.scale;return new mxRectangle(a.x+b,a.y+b,a.width-2*b,a.height-2*b)};function mxRhombus(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxRhombus,mxShape);mxRhombus.prototype.isRoundable=function(){return!0};
mxRhombus.prototype.paintVertexShape=function(a,b,c,d,e){var f=d/2,g=e/2,k=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+g),new mxPoint(b+f,c+e),new mxPoint(b,c+g)],this.isRounded,k,!0);a.fillAndStroke()};function mxPolyline(a,b,c){mxShape.call(this);this.points=a;this.stroke=b;this.strokewidth=null!=c?c:1}mxUtils.extend(mxPolyline,mxShape);mxPolyline.prototype.getRotation=function(){return 0};
mxPolyline.prototype.getShapeRotation=function(){return 0};mxPolyline.prototype.isPaintBoundsInverted=function(){return!1};mxPolyline.prototype.paintEdgeShape=function(a,b){var c=a.pointerEventsValue;a.pointerEventsValue="stroke";null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(a,b,this.isRounded):this.paintCurvedLine(a,b);a.pointerEventsValue=c};
@@ -504,7 +504,7 @@ function mxTriangle(){mxActor.call(this)}mxUtils.extend(mxTriangle,mxActor);mxTr
mxHexagon.prototype.redrawPath=function(a,b,c,d,e){b=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(a,[new mxPoint(.25*d,0),new mxPoint(.75*d,0),new mxPoint(d,.5*e),new mxPoint(.75*d,e),new mxPoint(.25*d,e),new mxPoint(0,.5*e)],this.isRounded,b,!0)};function mxLine(a,b,c,d){mxShape.call(this);this.bounds=a;this.stroke=b;this.strokewidth=null!=c?c:1;this.vertical=null!=d?d:this.vertical}mxUtils.extend(mxLine,mxShape);mxLine.prototype.vertical=!1;
mxLine.prototype.paintVertexShape=function(a,b,c,d,e){a.begin();if(this.vertical){var f=b+d/2;a.moveTo(f,c);a.lineTo(f,c+e)}else f=c+e/2,a.moveTo(b,f),a.lineTo(b+d,f);a.stroke()};function mxImageShape(a,b,c,d,e){mxShape.call(this);this.bounds=a;this.image=b;this.fill=c;this.stroke=d;this.strokewidth=null!=e?e:1;this.shadow=!1}mxUtils.extend(mxImageShape,mxRectangleShape);mxImageShape.prototype.preserveImageAspect=!0;mxImageShape.prototype.getSvgScreenOffset=function(){return 0};
mxImageShape.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);this.gradient=this.stroke=this.fill=null;null!=this.style&&(this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.imageBackground=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),this.imageBorder=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||
-1==mxUtils.getValue(this.style,"imageFlipV",0))};mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect};mxImageShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxImageShape.prototype.isRoundable=function(a,b,c,d,e){return!1};mxImageShape.prototype.getImageDataUri=function(){return this.image};mxImageShape.prototype.configurePointerEvents=function(a){};
+1==mxUtils.getValue(this.style,"imageFlipV",0))};mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect};mxImageShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxImageShape.prototype.isRoundable=function(){return!1};mxImageShape.prototype.getImageDataUri=function(){return this.image};mxImageShape.prototype.configurePointerEvents=function(a){};
mxImageShape.prototype.paintVertexShape=function(a,b,c,d,e){null!=this.image?(null!=this.imageBackground&&(a.setFillColor(this.imageBackground),a.setStrokeColor(this.imageBorder),a.rect(b,c,d,e),a.fillAndStroke()),a.image(b,c,d,e,this.getImageDataUri(),this.preserveImageAspect,!1,!1),null!=this.imageBorder&&(a.setShadow(!1),a.setStrokeColor(this.imageBorder),a.rect(b,c,d,e),a.stroke())):mxRectangleShape.prototype.paintBackground.apply(this,arguments)};
mxImageShape.prototype.redrawHtmlShape=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px";this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px";this.node.innerHTML="";if(null!=this.image){var a=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,""),b=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,"");this.node.style.backgroundColor=
a;this.node.style.borderColor=b;a=document.createElement("img");a.setAttribute("border","0");a.style.position="absolute";a.src=this.image;b=100>this.opacity?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=b;this.flipH&&this.flipV?b+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?b+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(b+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)");a.style.filter!=b&&(a.style.filter=b);"image"==
@@ -524,18 +524,20 @@ mxConnector.prototype.updateBoundingBox=function(){this.useSvgBoundingBox=null!=
mxConnector.prototype.createMarker=function(a,b,c){var d=null,e=b.length,f=mxUtils.getValue(this.style,c?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW),g=c?b[1]:b[e-2];b=c?b[0]:b[e-1];if(null!=f&&null!=g&&null!=b)var d=b.x-g.x,e=b.y-g.y,k=Math.sqrt(d*d+e*e),g=d/k,d=e/k,e=mxUtils.getNumber(this.style,c?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),d=mxMarker.createMarker(a,this,f,b,g,d,e,c,this.strokewidth,0!=this.style[c?mxConstants.STYLE_STARTFILL:
mxConstants.STYLE_ENDFILL]);return d};
mxConnector.prototype.augmentBoundingBox=function(a){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var b=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(b=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1);mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(b=Math.max(b,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+
-1);a.grow(b*this.scale)};function mxSwimlane(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxSwimlane,mxShape);mxSwimlane.prototype.imageSize=16;mxSwimlane.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.laneFill=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE))};mxSwimlane.prototype.isRoundable=function(a,b,c,d,e){return!0};
+1);a.grow(b*this.scale)};function mxSwimlane(a,b,c,d){mxShape.call(this);this.bounds=a;this.fill=b;this.stroke=c;this.strokewidth=null!=d?d:1}mxUtils.extend(mxSwimlane,mxShape);mxSwimlane.prototype.imageSize=16;mxSwimlane.prototype.apply=function(a){mxShape.prototype.apply.apply(this,arguments);null!=this.style&&(this.laneFill=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE))};mxSwimlane.prototype.isRoundable=function(){return!0};
mxSwimlane.prototype.getTitleSize=function(){return Math.max(0,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE))};
-mxSwimlane.prototype.getLabelBounds=function(a){var b=this.getTitleSize();a=new mxRectangle(a.x,a.y,a.width,a.height);var c=this.isHorizontal(),d=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),e=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),f=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH,c=c==!f,d=!c&&d!=(this.direction==mxConstants.DIRECTION_SOUTH||this.direction==mxConstants.DIRECTION_WEST),e=c&&e!=(this.direction==mxConstants.DIRECTION_SOUTH||
-this.direction==mxConstants.DIRECTION_WEST);if(f){b=Math.min(a.width,b*this.scale);if(d||e)a.x+=a.width-b;a.width=b}else{b=Math.min(a.height,b*this.scale);if(d||e)a.y+=a.height-b;a.height=b}return a};mxSwimlane.prototype.getGradientBounds=function(a,b,c,d,e){a=this.getTitleSize();if(this.isHorizontal())return a=Math.min(a,e),new mxRectangle(b,c,d,a);a=Math.min(a,d);return new mxRectangle(b,c,a,e)};
+mxSwimlane.prototype.getLabelBounds=function(a){var b=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),c=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0);a=new mxRectangle(a.x,a.y,a.width,a.height);var d=this.isHorizontal(),e=this.getTitleSize(),f=this.direction==mxConstants.DIRECTION_NORTH||this.direction==mxConstants.DIRECTION_SOUTH,d=d==!f,b=!d&&b!=(this.direction==mxConstants.DIRECTION_SOUTH||this.direction==mxConstants.DIRECTION_WEST),c=d&&c!=(this.direction==mxConstants.DIRECTION_SOUTH||
+this.direction==mxConstants.DIRECTION_WEST);if(f){e=Math.min(a.width,e*this.scale);if(b||c)a.x+=a.width-e;a.width=e}else{e=Math.min(a.height,e*this.scale);if(b||c)a.y+=a.height-e;a.height=e}return a};mxSwimlane.prototype.getGradientBounds=function(a,b,c,d,e){a=this.getTitleSize();return this.isHorizontal()?new mxRectangle(b,c,d,Math.min(a,e)):new mxRectangle(b,c,Math.min(a,d),e)};
mxSwimlane.prototype.getSwimlaneArcSize=function(a,b,c){if("1"==mxUtils.getValue(this.style,mxConstants.STYLE_ABSOLUTE_ARCSIZE,0))return Math.min(a/2,Math.min(b/2,mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2));a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return c*a*3};mxSwimlane.prototype.isHorizontal=function(){return 1==mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)};
-mxSwimlane.prototype.paintVertexShape=function(a,b,c,d,e){var f=this.getTitleSize(),g=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),k=0,f=this.isHorizontal()?Math.min(f,e):Math.min(f,d);a.translate(b,c);this.isRounded?(k=this.getSwimlaneArcSize(d,e,f),k=Math.min((this.isHorizontal()?e:d)-f,Math.min(f,k)),this.paintRoundedSwimlane(a,b,c,d,e,f,k,this.laneFill,g)):this.paintSwimlane(a,b,c,d,e,f,this.laneFill,g);g=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);
-this.paintSeparator(a,b,c,d,e,f,g);null!=this.image&&(e=this.getImageBounds(b,c,d,e),a.image(e.x-b,e.y-c,e.width,e.height,this.image,!1,!1,!1));this.glass&&(a.setShadow(!1),this.paintGlassEffect(a,0,0,d,f,k))};
-mxSwimlane.prototype.paintSwimlane=function(a,b,c,d,e,f,g,k){a.begin();var l=!0;null!=this.style&&(l="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));this.isHorizontal()?(a.moveTo(0,f),a.lineTo(0,0),a.lineTo(d,0),a.lineTo(d,f),a.fillAndStroke(),f<e&&(g!=mxConstants.NONE&&l||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(0,f),a.lineTo(0,e),a.lineTo(d,e),a.lineTo(d,f),g==mxConstants.NONE?a.stroke():a.fillAndStroke())):(a.moveTo(f,0),a.lineTo(0,
-0),a.lineTo(0,e),a.lineTo(f,e),a.fillAndStroke(),f<d&&(g!=mxConstants.NONE&&l||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(f,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(f,e),g==mxConstants.NONE?a.stroke():a.fillAndStroke()));k&&this.paintDivider(a,b,c,d,e,f,g==mxConstants.NONE)};
-mxSwimlane.prototype.paintRoundedSwimlane=function(a,b,c,d,e,f,g,k,l){a.begin();var m=!0;null!=this.style&&(m="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"));this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,g),a.quadTo(d,0,d-Math.min(d/2,g),0),a.lineTo(Math.min(d/2,g),0),a.quadTo(0,0,0,g),a.lineTo(0,f),a.fillAndStroke(),f<e&&(k!=mxConstants.NONE&&m||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(0,f),a.lineTo(0,e-g),a.quadTo(0,e,Math.min(d/2,g),
-e),a.lineTo(d-Math.min(d/2,g),e),a.quadTo(d,e,d,e-g),a.lineTo(d,f),k==mxConstants.NONE?a.stroke():a.fillAndStroke())):(a.moveTo(f,0),a.lineTo(g,0),a.quadTo(0,0,0,Math.min(e/2,g)),a.lineTo(0,e-Math.min(e/2,g)),a.quadTo(0,e,g,e),a.lineTo(f,e),a.fillAndStroke(),f<d&&(k!=mxConstants.NONE&&m||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(f,e),a.lineTo(d-g,e),a.quadTo(d,e,d,e-Math.min(e/2,g)),a.lineTo(d,Math.min(e/2,g)),a.quadTo(d,0,d-g,0),a.lineTo(f,0),k==mxConstants.NONE?
-a.stroke():a.fillAndStroke()));l&&this.paintDivider(a,b,c,d,e,f,k==mxConstants.NONE)};mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){g||a.setShadow(!1);a.begin();this.isHorizontal()?(a.moveTo(0,f),a.lineTo(d,f)):(a.moveTo(f,0),a.lineTo(f,e));a.stroke()};mxSwimlane.prototype.paintSeparator=function(a,b,c,d,e,f,g){g!=mxConstants.NONE&&(a.setStrokeColor(g),a.setDashed(!0),a.begin(),this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,e)):(a.moveTo(f,0),a.lineTo(d,0)),a.stroke(),a.setDashed(!1))};
+mxSwimlane.prototype.paintVertexShape=function(a,b,c,d,e){if(!this.outline){var f=this.getTitleSize(),g=0,f=this.isHorizontal()?Math.min(f,e):Math.min(f,d);a.translate(b,c);this.isRounded?(g=this.getSwimlaneArcSize(d,e,f),g=Math.min((this.isHorizontal()?e:d)-f,Math.min(f,g)),this.paintRoundedSwimlane(a,b,c,d,e,f,g)):this.paintSwimlane(a,b,c,d,e,f);var k=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE);this.paintSeparator(a,b,c,d,e,f,k);null!=this.image&&(e=this.getImageBounds(b,
+c,d,e),a.image(e.x-b,e.y-c,e.width,e.height,this.image,!1,!1,!1));this.glass&&(a.setShadow(!1),this.paintGlassEffect(a,0,0,d,f,g))}};mxSwimlane.prototype.configurePointerEvents=function(a){var b=!0,c=!0,d=!0;null!=this.style&&(b="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),c=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),d=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));(b||c||d)&&mxShape.prototype.configurePointerEvents.apply(this,arguments)};
+mxSwimlane.prototype.paintSwimlane=function(a,b,c,d,e,f){var g=this.laneFill,k=!0,l=!0,m=!0,n=!0;null!=this.style&&(k="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),l=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),m=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),n=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));this.isHorizontal()?(a.begin(),a.moveTo(0,f),a.lineTo(0,0),a.lineTo(d,0),a.lineTo(d,f),m?a.fillAndStroke():
+a.fill(),f<e&&(g!=mxConstants.NONE&&k||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(0,f),a.lineTo(0,e),a.lineTo(d,e),a.lineTo(d,f),n?g==mxConstants.NONE?a.stroke():n&&a.fillAndStroke():g!=mxConstants.NONE&&a.fill())):(a.begin(),a.moveTo(f,0),a.lineTo(0,0),a.lineTo(0,e),a.lineTo(f,e),m?a.fillAndStroke():a.fill(),f<d&&(g!=mxConstants.NONE&&k||(a.pointerEvents=!1),g!=mxConstants.NONE&&a.setFillColor(g),a.begin(),a.moveTo(f,0),a.lineTo(d,0),a.lineTo(d,e),a.lineTo(f,e),
+n?g==mxConstants.NONE?a.stroke():n&&a.fillAndStroke():g!=mxConstants.NONE&&a.fill()));l&&this.paintDivider(a,b,c,d,e,f,g==mxConstants.NONE)};
+mxSwimlane.prototype.paintRoundedSwimlane=function(a,b,c,d,e,f,g){var k=this.laneFill,l=!0,m=!0,n=!0,p=!0;null!=this.style&&(l="1"==mxUtils.getValue(this.style,mxConstants.STYLE_POINTER_EVENTS,"1"),m=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),n=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_HEAD,1),p=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_BODY,1));this.isHorizontal()?(a.begin(),a.moveTo(d,f),a.lineTo(d,g),a.quadTo(d,0,d-Math.min(d/2,g),0),a.lineTo(Math.min(d/
+2,g),0),a.quadTo(0,0,0,g),a.lineTo(0,f),n?a.fillAndStroke():a.fill(),f<e&&(k!=mxConstants.NONE&&l||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(0,f),a.lineTo(0,e-g),a.quadTo(0,e,Math.min(d/2,g),e),a.lineTo(d-Math.min(d/2,g),e),a.quadTo(d,e,d,e-g),a.lineTo(d,f),p?k==mxConstants.NONE?a.stroke():p&&a.fillAndStroke():k!=mxConstants.NONE&&a.fill())):(a.begin(),a.moveTo(f,0),a.lineTo(g,0),a.quadTo(0,0,0,Math.min(e/2,g)),a.lineTo(0,e-Math.min(e/2,g)),a.quadTo(0,e,g,e),a.lineTo(f,
+e),n?a.fillAndStroke():a.fill(),f<d&&(k!=mxConstants.NONE&&l||(a.pointerEvents=!1),k!=mxConstants.NONE&&a.setFillColor(k),a.begin(),a.moveTo(f,e),a.lineTo(d-g,e),a.quadTo(d,e,d,e-Math.min(e/2,g)),a.lineTo(d,Math.min(e/2,g)),a.quadTo(d,0,d-g,0),a.lineTo(f,0),p?k==mxConstants.NONE?a.stroke():p&&a.fillAndStroke():k!=mxConstants.NONE&&a.fill()));m&&this.paintDivider(a,b,c,d,e,f,k==mxConstants.NONE)};
+mxSwimlane.prototype.paintDivider=function(a,b,c,d,e,f,g){0!=f&&(g||a.setShadow(!1),a.begin(),this.isHorizontal()?(a.moveTo(0,f),a.lineTo(d,f)):(a.moveTo(f,0),a.lineTo(f,e)),a.stroke())};mxSwimlane.prototype.paintSeparator=function(a,b,c,d,e,f,g){g!=mxConstants.NONE&&(a.setStrokeColor(g),a.setDashed(!0),a.begin(),this.isHorizontal()?(a.moveTo(d,f),a.lineTo(d,e)):(a.moveTo(f,0),a.lineTo(d,0)),a.stroke(),a.setDashed(!1))};
mxSwimlane.prototype.getImageBounds=function(a,b,c,d){return this.isHorizontal()?new mxRectangle(a+c-this.imageSize,b,this.imageSize,this.imageSize):new mxRectangle(a,b,this.imageSize,this.imageSize)};function mxGraphLayout(a){this.graph=a}mxGraphLayout.prototype.graph=null;mxGraphLayout.prototype.useBoundingBox=!0;mxGraphLayout.prototype.parent=null;mxGraphLayout.prototype.moveCell=function(a,b,c){};mxGraphLayout.prototype.resizeCell=function(a,b){};mxGraphLayout.prototype.execute=function(a){};
mxGraphLayout.prototype.getGraph=function(){return this.graph};mxGraphLayout.prototype.getConstraint=function(a,b,c,d){return this.graph.getCurrentCellStyle(b)[a]};
mxGraphLayout.traverse=function(a,b,c,d,e){if(null!=c&&null!=a&&(b=null!=b?b:!0,e=e||new mxDictionary,!e.get(a)&&(e.put(a,!0),d=c(a,d),null==d||d))&&(d=this.graph.model.getEdgeCount(a),0<d))for(var f=0;f<d;f++){var g=this.graph.model.getEdgeAt(a,f),k=this.graph.model.getTerminal(g,!0)==a;if(!b||k)k=this.graph.view.getVisibleTerminal(g,!k),this.traverse(k,b,c,g,e)}};
diff --git a/src/main/webapp/service-worker.js b/src/main/webapp/service-worker.js
index df067fe9..96f398bc 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-dfbb910f"],(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:"9e95d759c2ab233f0291ee64f0883a97"},{url:"js/extensions.min.js",revision:"44f4bd1a585836eb684bc07c94238837"},{url:"js/stencils.min.js",revision:"a4363c11e41442d41b1e073606f5566d"},{url:"js/shapes-14-6-5.min.js",revision:"ebce9c260798e9465fa3c3e3c1607d43"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"9200e0815b5a48cae7db8f54f9604990"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"748da0cd0a068a52eac70ee2b2c194fe"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"3179f617dd02efd2cefeb8c06f965880"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"84e1bc39fdde78a67118a1762f8c23de"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"2ce6e99d95113e9ca6b24343cea202e0"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"6e9412c359a21b86dc7c5128bf6208d4"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"01caa325f3ad3f6565e0b4228907fb63"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"4e0775a6c156a803e777870623ac7c3e"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"d7577d8f21716423852c343f027c4c27"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"8f6c85460791915b01d83cd0a793effb"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"887d3ac605a7bb297067537e7c1f5686"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"d025b0929817299fa154f273525aa0ec"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c7b38b3af4eb7a58ab6dc4791216530e"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"8b670f4b6ccde55358851da705ae884f"},{url:"connect/confluence/includeDiagram.html",revision:"c03c89622d22227313645900af4e3c3d"},{url:"connect/confluence/macro-editor.js",revision:"e273a48b8e81faac4530bf1a68d75aa0"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_am.txt",revision:"7b87288182abf40af0364ee000959b7b"},{url:"resources/dia_ar.txt",revision:"0ab712083c7e9e5fe881c37250074d4c"},{url:"resources/dia_bg.txt",revision:"c3fe70b41c1c99a3817f45a533f0d3d1"},{url:"resources/dia_bn.txt",revision:"50da78b0b7f2f65bdf25eabae73b3228"},{url:"resources/dia_bs.txt",revision:"568b22ef20ebfe162fce127fa9bcc6b5"},{url:"resources/dia_ca.txt",revision:"a4f3c89b030191d40999805696e6859b"},{url:"resources/dia_cs.txt",revision:"feebdfef9385384c37fbadd1a1a1b6c2"},{url:"resources/dia_da.txt",revision:"163d26afd66826247cf1553314ec70f5"},{url:"resources/dia_de.txt",revision:"9aa8d6e1d10659624519c88a7ad3e042"},{url:"resources/dia_el.txt",revision:"5289ac0ed78737231ca568be2c777d1a"},{url:"resources/dia_eo.txt",revision:"98e0cca265917fe115de548ca2c6d7a4"},{url:"resources/dia_es.txt",revision:"1a590b0b38299487e1267d440ba04350"},{url:"resources/dia_et.txt",revision:"bed7cfc8f949531f762ad86a225c15a2"},{url:"resources/dia_eu.txt",revision:"1d65da41d45cf45dfb81d13f360d7193"},{url:"resources/dia_fa.txt",revision:"21e0279f46bcdd79063c06fcfc7b1120"},{url:"resources/dia_fi.txt",revision:"649cea556e9168919b0492f8565bac8b"},{url:"resources/dia_fil.txt",revision:"a717e0751e11dbb6502acfcc51c1a704"},{url:"resources/dia_fr.txt",revision:"4e6530553659158b0f55cc43ec46cc7e"},{url:"resources/dia_gl.txt",revision:"4fe5a563571d23001fb0dcd28dadcb32"},{url:"resources/dia_gu.txt",revision:"5eef301316f5945a700c13d1d96570ed"},{url:"resources/dia_he.txt",revision:"d13e2c3ec4f6f34948f874eda3d63a55"},{url:"resources/dia_hi.txt",revision:"65a2374e09cee44447e9462f3acb7f6a"},{url:"resources/dia_hr.txt",revision:"21626f14592c1b84ee28b058fcb74194"},{url:"resources/dia_hu.txt",revision:"1698e21cde2ed5f5b599429e5e68a8c4"},{url:"resources/dia_id.txt",revision:"a3af078b5bc5cd36df5368fb2604ed02"},{url:"resources/dia_it.txt",revision:"1330d09037dddd6e5aa3d4843168b88b"},{url:"resources/dia_ja.txt",revision:"990f1ad82383245f1f9e37678a1c9bab"},{url:"resources/dia_kn.txt",revision:"836030c27dc0bb91a25ebcc722f2df41"},{url:"resources/dia_ko.txt",revision:"4a5032d2cad4be2a1815f7e29238664a"},{url:"resources/dia_lt.txt",revision:"d0a2bbb32c3d7d860c8c0385075407ee"},{url:"resources/dia_lv.txt",revision:"8cdfac8996f69486b99302eb0c01757a"},{url:"resources/dia_ml.txt",revision:"53f0f853779db48abc46023e507cb698"},{url:"resources/dia_mr.txt",revision:"4f3bffbf25b0d07a0946e77a288f40b9"},{url:"resources/dia_ms.txt",revision:"55d9c222689543ab6a091636d12dc92f"},{url:"resources/dia_my.txt",revision:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_nl.txt",revision:"da45f841b898121c268b02e5cf0c0f5e"},{url:"resources/dia_no.txt",revision:"afa660c88bef1253c9827f857e3c2a99"},{url:"resources/dia_pl.txt",revision:"934cb78df740c1377b724cc68b28b436"},{url:"resources/dia_pt-br.txt",revision:"128c5640c8ea34d4e5296bbb2ef35db3"},{url:"resources/dia_pt.txt",revision:"1d30c678b01d010a0c8a5cf415fa68a0"},{url:"resources/dia_ro.txt",revision:"a90bf597059e90eff0d955d12058df23"},{url:"resources/dia_ru.txt",revision:"b225c1bd151294617e8d600181d9e44e"},{url:"resources/dia_si.txt",revision:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_sk.txt",revision:"be785304786ae06fe6cdae4c029e5f28"},{url:"resources/dia_sl.txt",revision:"c3748f17f0775bdd539ed69a49acd1e1"},{url:"resources/dia_sr.txt",revision:"611506593ed67893a50c3a9000a12c79"},{url:"resources/dia_sv.txt",revision:"54157da886c9c17d4eb1fe9e3d195368"},{url:"resources/dia_sw.txt",revision:"0cd0148f07578cbac9dc4e2222277266"},{url:"resources/dia_ta.txt",revision:"79cb0ed533e753ae646f055fb75d25fc"},{url:"resources/dia_te.txt",revision:"305740ddcfe539071f9f65d844c13068"},{url:"resources/dia_th.txt",revision:"ffc4698dc2f34eb02bf02f3ac26c5c7e"},{url:"resources/dia_tr.txt",revision:"1092cea9e131780ae817c5c5915be3b6"},{url:"resources/dia_uk.txt",revision:"e1ab64d71b13935ef5ef05c09a8f95d9"},{url:"resources/dia_vi.txt",revision:"a9ead4c2e8460af1b127b7405dba35a3"},{url:"resources/dia_zh-tw.txt",revision:"28d610fd1f35a68bcc8a555fea09dc12"},{url:"resources/dia_zh.txt",revision:"f49748b5eb13dee86003c5f57aa628ff"},{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,c,a)=>{r[i]||(r[i]=Promise.resolve().then((()=>{let r={};const s={uri:location.origin+i.slice(1)};return Promise.all(c.map((i=>{switch(i){case"exports":return r;case"module":return s;default:return e(i)}}))).then((e=>{const i=a(...e);return r.default||(r.default=i),r}))})))}}define("./service-worker.js",["./workbox-dfbb910f"],(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:"d8e8c8e610267842b3c516bd581724a2"},{url:"js/extensions.min.js",revision:"44f4bd1a585836eb684bc07c94238837"},{url:"js/stencils.min.js",revision:"a4363c11e41442d41b1e073606f5566d"},{url:"js/shapes-14-6-5.min.js",revision:"ebce9c260798e9465fa3c3e3c1607d43"},{url:"js/math-print.js",revision:"9d98c920695f6c3395da4b68f723e60a"},{url:"index.html",revision:"9200e0815b5a48cae7db8f54f9604990"},{url:"open.html",revision:"d71816b3b00e769fc6019fcdd6921662"},{url:"styles/grapheditor.css",revision:"748da0cd0a068a52eac70ee2b2c194fe"},{url:"styles/atlas.css",revision:"e8152cda9233d3a3af017422993abfce"},{url:"styles/dark.css",revision:"3179f617dd02efd2cefeb8c06f965880"},{url:"js/croppie/croppie.min.css",revision:"fc297c9002c79c15a132f13ee3ec427e"},{url:"js/dropbox/Dropbox-sdk.min.js",revision:"4b9842892aa37b156db0a8364b7a83b0"},{url:"js/onedrive/OneDrive.js",revision:"505e8280346666f7ee801bc59521fa67"},{url:"js/viewer-static.min.js",revision:"6e09419bc5a7859b93b4f3a8ec947ec5"},{url:"connect/jira/editor-1-3-3.html",revision:"a2b0e7267a08a838f3cc404eba831ec0"},{url:"connect/jira/viewerPanel-1-3-12.html",revision:"2ce6e99d95113e9ca6b24343cea202e0"},{url:"connect/jira/fullScreenViewer-1-3-3.html",revision:"ba7ece2dfb2833b72f97280d7092f25e"},{url:"connect/jira/viewerPanel.js",revision:"6e9412c359a21b86dc7c5128bf6208d4"},{url:"connect/jira/spinner.gif",revision:"7d857ab9d86123e93d74d48e958fe743"},{url:"connect/jira/editor.js",revision:"01caa325f3ad3f6565e0b4228907fb63"},{url:"connect/jira/fullscreen-viewer-init.js",revision:"197ed5837ed27992688fc424699a9a78"},{url:"connect/jira/fullscreen-viewer.js",revision:"4e0775a6c156a803e777870623ac7c3e"},{url:"plugins/connectJira.js",revision:"4cefa13414e0d406550f3c073923080c"},{url:"plugins/cConf-comments.js",revision:"c787357209cff2986dcca567b599e2ef"},{url:"plugins/cConf-1-4-8.js",revision:"d7577d8f21716423852c343f027c4c27"},{url:"connect/confluence/connectUtils-1-4-8.js",revision:"8f6c85460791915b01d83cd0a793effb"},{url:"connect/new_common/cac.js",revision:"3d8c436c566db645fb1e6e6ba9f69bbc"},{url:"connect/gdrive_common/gac.js",revision:"38f1df3ecc4d78290493f47e62202138"},{url:"connect/onedrive_common/ac.js",revision:"887d3ac605a7bb297067537e7c1f5686"},{url:"connect/confluence/viewer-init.js",revision:"4a60c6c805cab7bc782f1e52f7818d9f"},{url:"connect/confluence/viewer.js",revision:"d025b0929817299fa154f273525aa0ec"},{url:"connect/confluence/viewer-1-4-42.html",revision:"c7b38b3af4eb7a58ab6dc4791216530e"},{url:"connect/confluence/macroEditor-1-4-8.html",revision:"8cd74a2fb60bf2e3e86026d66107cf11"},{url:"connect/confluence/includeDiagram-1-4-8.js",revision:"8b670f4b6ccde55358851da705ae884f"},{url:"connect/confluence/includeDiagram.html",revision:"c03c89622d22227313645900af4e3c3d"},{url:"connect/confluence/macro-editor.js",revision:"e273a48b8e81faac4530bf1a68d75aa0"},{url:"math/MathJax.js",revision:"b2c103388b71bb3d11cbf9aa45fe9b68"},{url:"math/config/TeX-MML-AM_SVG-full.js",revision:"d5cb8ac04050983170ae4af145bc66ff"},{url:"math/jax/output/SVG/fonts/TeX/fontdata.js",revision:"495e5a410955d1b6178870e605890ede"},{url:"math/jax/element/mml/optable/BasicLatin.js",revision:"cac9b2e71382e62270baa55fab07cc13"},{url:"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js",revision:"e3e5e4d5924beed29f0844550b5c8f46"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js",revision:"0767cbad7275b53da128e7e5e1109f7c"},{url:"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js",revision:"346302a5c5ee00e01c302148c56dbfe3"},{url:"resources/dia.txt",revision:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_am.txt",revision:"7b87288182abf40af0364ee000959b7b"},{url:"resources/dia_ar.txt",revision:"8cb02cb9d3740ac3306b963f060db29f"},{url:"resources/dia_bg.txt",revision:"c3fe70b41c1c99a3817f45a533f0d3d1"},{url:"resources/dia_bn.txt",revision:"50da78b0b7f2f65bdf25eabae73b3228"},{url:"resources/dia_bs.txt",revision:"568b22ef20ebfe162fce127fa9bcc6b5"},{url:"resources/dia_ca.txt",revision:"a4f3c89b030191d40999805696e6859b"},{url:"resources/dia_cs.txt",revision:"feebdfef9385384c37fbadd1a1a1b6c2"},{url:"resources/dia_da.txt",revision:"163d26afd66826247cf1553314ec70f5"},{url:"resources/dia_de.txt",revision:"9aa8d6e1d10659624519c88a7ad3e042"},{url:"resources/dia_el.txt",revision:"5289ac0ed78737231ca568be2c777d1a"},{url:"resources/dia_eo.txt",revision:"98e0cca265917fe115de548ca2c6d7a4"},{url:"resources/dia_es.txt",revision:"1a590b0b38299487e1267d440ba04350"},{url:"resources/dia_et.txt",revision:"bed7cfc8f949531f762ad86a225c15a2"},{url:"resources/dia_eu.txt",revision:"5186a4cce8e53bb454e4d539d1792b4d"},{url:"resources/dia_fa.txt",revision:"21e0279f46bcdd79063c06fcfc7b1120"},{url:"resources/dia_fi.txt",revision:"649cea556e9168919b0492f8565bac8b"},{url:"resources/dia_fil.txt",revision:"a717e0751e11dbb6502acfcc51c1a704"},{url:"resources/dia_fr.txt",revision:"4e6530553659158b0f55cc43ec46cc7e"},{url:"resources/dia_gl.txt",revision:"4fe5a563571d23001fb0dcd28dadcb32"},{url:"resources/dia_gu.txt",revision:"5eef301316f5945a700c13d1d96570ed"},{url:"resources/dia_he.txt",revision:"d13e2c3ec4f6f34948f874eda3d63a55"},{url:"resources/dia_hi.txt",revision:"65a2374e09cee44447e9462f3acb7f6a"},{url:"resources/dia_hr.txt",revision:"21626f14592c1b84ee28b058fcb74194"},{url:"resources/dia_hu.txt",revision:"1698e21cde2ed5f5b599429e5e68a8c4"},{url:"resources/dia_id.txt",revision:"a3af078b5bc5cd36df5368fb2604ed02"},{url:"resources/dia_it.txt",revision:"f3b29c577b79c37687f37c1b0748b9d1"},{url:"resources/dia_ja.txt",revision:"990f1ad82383245f1f9e37678a1c9bab"},{url:"resources/dia_kn.txt",revision:"836030c27dc0bb91a25ebcc722f2df41"},{url:"resources/dia_ko.txt",revision:"4a5032d2cad4be2a1815f7e29238664a"},{url:"resources/dia_lt.txt",revision:"d0a2bbb32c3d7d860c8c0385075407ee"},{url:"resources/dia_lv.txt",revision:"8cdfac8996f69486b99302eb0c01757a"},{url:"resources/dia_ml.txt",revision:"53f0f853779db48abc46023e507cb698"},{url:"resources/dia_mr.txt",revision:"4f3bffbf25b0d07a0946e77a288f40b9"},{url:"resources/dia_ms.txt",revision:"55d9c222689543ab6a091636d12dc92f"},{url:"resources/dia_my.txt",revision:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_nl.txt",revision:"da45f841b898121c268b02e5cf0c0f5e"},{url:"resources/dia_no.txt",revision:"afa660c88bef1253c9827f857e3c2a99"},{url:"resources/dia_pl.txt",revision:"934cb78df740c1377b724cc68b28b436"},{url:"resources/dia_pt-br.txt",revision:"128c5640c8ea34d4e5296bbb2ef35db3"},{url:"resources/dia_pt.txt",revision:"1d30c678b01d010a0c8a5cf415fa68a0"},{url:"resources/dia_ro.txt",revision:"a90bf597059e90eff0d955d12058df23"},{url:"resources/dia_ru.txt",revision:"b225c1bd151294617e8d600181d9e44e"},{url:"resources/dia_si.txt",revision:"6ac22c2dd7bf24f2ce4db6ea5cd82470"},{url:"resources/dia_sk.txt",revision:"be785304786ae06fe6cdae4c029e5f28"},{url:"resources/dia_sl.txt",revision:"c3748f17f0775bdd539ed69a49acd1e1"},{url:"resources/dia_sr.txt",revision:"611506593ed67893a50c3a9000a12c79"},{url:"resources/dia_sv.txt",revision:"54157da886c9c17d4eb1fe9e3d195368"},{url:"resources/dia_sw.txt",revision:"0cd0148f07578cbac9dc4e2222277266"},{url:"resources/dia_ta.txt",revision:"79cb0ed533e753ae646f055fb75d25fc"},{url:"resources/dia_te.txt",revision:"305740ddcfe539071f9f65d844c13068"},{url:"resources/dia_th.txt",revision:"ffc4698dc2f34eb02bf02f3ac26c5c7e"},{url:"resources/dia_tr.txt",revision:"1092cea9e131780ae817c5c5915be3b6"},{url:"resources/dia_uk.txt",revision:"e1ab64d71b13935ef5ef05c09a8f95d9"},{url:"resources/dia_vi.txt",revision:"a9ead4c2e8460af1b127b7405dba35a3"},{url:"resources/dia_zh-tw.txt",revision:"28d610fd1f35a68bcc8a555fea09dc12"},{url:"resources/dia_zh.txt",revision:"f49748b5eb13dee86003c5f57aa628ff"},{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 e4ff4ebe..fecbc84c 100644
--- a/src/main/webapp/service-worker.js.map
+++ b/src/main/webapp/service-worker.js.map
@@ -1 +1 @@
-{"version":3,"file":"service-worker.js","sources":["../../../../../../../tmp/73dcccf0a0958ef286e2447b0a4d680c/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/opt/hostedtoolcache/node/14.18.2/x64/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"9e95d759c2ab233f0291ee64f0883a97\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"44f4bd1a585836eb684bc07c94238837\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"a4363c11e41442d41b1e073606f5566d\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"ebce9c260798e9465fa3c3e3c1607d43\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"9200e0815b5a48cae7db8f54f9604990\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"748da0cd0a068a52eac70ee2b2c194fe\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"3179f617dd02efd2cefeb8c06f965880\"\n },\n {\n \"url\": \"js/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"84e1bc39fdde78a67118a1762f8c23de\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a2b0e7267a08a838f3cc404eba831ec0\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"2ce6e99d95113e9ca6b24343cea202e0\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"6e9412c359a21b86dc7c5128bf6208d4\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"01caa325f3ad3f6565e0b4228907fb63\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"4e0775a6c156a803e777870623ac7c3e\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"d7577d8f21716423852c343f027c4c27\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"8f6c85460791915b01d83cd0a793effb\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"3d8c436c566db645fb1e6e6ba9f69bbc\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"38f1df3ecc4d78290493f47e62202138\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"887d3ac605a7bb297067537e7c1f5686\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"d025b0929817299fa154f273525aa0ec\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c7b38b3af4eb7a58ab6dc4791216530e\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"8cd74a2fb60bf2e3e86026d66107cf11\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"8b670f4b6ccde55358851da705ae884f\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"c03c89622d22227313645900af4e3c3d\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"e273a48b8e81faac4530bf1a68d75aa0\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"7b87288182abf40af0364ee000959b7b\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"0ab712083c7e9e5fe881c37250074d4c\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"c3fe70b41c1c99a3817f45a533f0d3d1\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"50da78b0b7f2f65bdf25eabae73b3228\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"568b22ef20ebfe162fce127fa9bcc6b5\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"a4f3c89b030191d40999805696e6859b\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"feebdfef9385384c37fbadd1a1a1b6c2\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"163d26afd66826247cf1553314ec70f5\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"9aa8d6e1d10659624519c88a7ad3e042\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"5289ac0ed78737231ca568be2c777d1a\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"98e0cca265917fe115de548ca2c6d7a4\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"1a590b0b38299487e1267d440ba04350\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"bed7cfc8f949531f762ad86a225c15a2\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"1d65da41d45cf45dfb81d13f360d7193\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"21e0279f46bcdd79063c06fcfc7b1120\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"649cea556e9168919b0492f8565bac8b\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"a717e0751e11dbb6502acfcc51c1a704\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"4e6530553659158b0f55cc43ec46cc7e\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"4fe5a563571d23001fb0dcd28dadcb32\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"5eef301316f5945a700c13d1d96570ed\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"d13e2c3ec4f6f34948f874eda3d63a55\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"65a2374e09cee44447e9462f3acb7f6a\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"21626f14592c1b84ee28b058fcb74194\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"1698e21cde2ed5f5b599429e5e68a8c4\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"a3af078b5bc5cd36df5368fb2604ed02\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"1330d09037dddd6e5aa3d4843168b88b\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"990f1ad82383245f1f9e37678a1c9bab\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"836030c27dc0bb91a25ebcc722f2df41\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"4a5032d2cad4be2a1815f7e29238664a\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"d0a2bbb32c3d7d860c8c0385075407ee\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"8cdfac8996f69486b99302eb0c01757a\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"53f0f853779db48abc46023e507cb698\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"4f3bffbf25b0d07a0946e77a288f40b9\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"55d9c222689543ab6a091636d12dc92f\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"da45f841b898121c268b02e5cf0c0f5e\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"afa660c88bef1253c9827f857e3c2a99\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"934cb78df740c1377b724cc68b28b436\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"128c5640c8ea34d4e5296bbb2ef35db3\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"1d30c678b01d010a0c8a5cf415fa68a0\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"a90bf597059e90eff0d955d12058df23\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"b225c1bd151294617e8d600181d9e44e\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"be785304786ae06fe6cdae4c029e5f28\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"c3748f17f0775bdd539ed69a49acd1e1\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"611506593ed67893a50c3a9000a12c79\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"54157da886c9c17d4eb1fe9e3d195368\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"0cd0148f07578cbac9dc4e2222277266\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"79cb0ed533e753ae646f055fb75d25fc\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"305740ddcfe539071f9f65d844c13068\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"ffc4698dc2f34eb02bf02f3ac26c5c7e\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"1092cea9e131780ae817c5c5915be3b6\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"e1ab64d71b13935ef5ef05c09a8f95d9\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"a9ead4c2e8460af1b127b7405dba35a3\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"28d610fd1f35a68bcc8a555fea09dc12\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"f49748b5eb13dee86003c5f57aa628ff\"\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":["../../../../../../../tmp/6eff37b9872c00cc912a444fbab08d47/service-worker.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/opt/hostedtoolcache/node/14.18.2/x64/lib/node_modules/workbox-cli/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"js/app.min.js\",\n \"revision\": \"d8e8c8e610267842b3c516bd581724a2\"\n },\n {\n \"url\": \"js/extensions.min.js\",\n \"revision\": \"44f4bd1a585836eb684bc07c94238837\"\n },\n {\n \"url\": \"js/stencils.min.js\",\n \"revision\": \"a4363c11e41442d41b1e073606f5566d\"\n },\n {\n \"url\": \"js/shapes-14-6-5.min.js\",\n \"revision\": \"ebce9c260798e9465fa3c3e3c1607d43\"\n },\n {\n \"url\": \"js/math-print.js\",\n \"revision\": \"9d98c920695f6c3395da4b68f723e60a\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"9200e0815b5a48cae7db8f54f9604990\"\n },\n {\n \"url\": \"open.html\",\n \"revision\": \"d71816b3b00e769fc6019fcdd6921662\"\n },\n {\n \"url\": \"styles/grapheditor.css\",\n \"revision\": \"748da0cd0a068a52eac70ee2b2c194fe\"\n },\n {\n \"url\": \"styles/atlas.css\",\n \"revision\": \"e8152cda9233d3a3af017422993abfce\"\n },\n {\n \"url\": \"styles/dark.css\",\n \"revision\": \"3179f617dd02efd2cefeb8c06f965880\"\n },\n {\n \"url\": \"js/croppie/croppie.min.css\",\n \"revision\": \"fc297c9002c79c15a132f13ee3ec427e\"\n },\n {\n \"url\": \"js/dropbox/Dropbox-sdk.min.js\",\n \"revision\": \"4b9842892aa37b156db0a8364b7a83b0\"\n },\n {\n \"url\": \"js/onedrive/OneDrive.js\",\n \"revision\": \"505e8280346666f7ee801bc59521fa67\"\n },\n {\n \"url\": \"js/viewer-static.min.js\",\n \"revision\": \"6e09419bc5a7859b93b4f3a8ec947ec5\"\n },\n {\n \"url\": \"connect/jira/editor-1-3-3.html\",\n \"revision\": \"a2b0e7267a08a838f3cc404eba831ec0\"\n },\n {\n \"url\": \"connect/jira/viewerPanel-1-3-12.html\",\n \"revision\": \"2ce6e99d95113e9ca6b24343cea202e0\"\n },\n {\n \"url\": \"connect/jira/fullScreenViewer-1-3-3.html\",\n \"revision\": \"ba7ece2dfb2833b72f97280d7092f25e\"\n },\n {\n \"url\": \"connect/jira/viewerPanel.js\",\n \"revision\": \"6e9412c359a21b86dc7c5128bf6208d4\"\n },\n {\n \"url\": \"connect/jira/spinner.gif\",\n \"revision\": \"7d857ab9d86123e93d74d48e958fe743\"\n },\n {\n \"url\": \"connect/jira/editor.js\",\n \"revision\": \"01caa325f3ad3f6565e0b4228907fb63\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer-init.js\",\n \"revision\": \"197ed5837ed27992688fc424699a9a78\"\n },\n {\n \"url\": \"connect/jira/fullscreen-viewer.js\",\n \"revision\": \"4e0775a6c156a803e777870623ac7c3e\"\n },\n {\n \"url\": \"plugins/connectJira.js\",\n \"revision\": \"4cefa13414e0d406550f3c073923080c\"\n },\n {\n \"url\": \"plugins/cConf-comments.js\",\n \"revision\": \"c787357209cff2986dcca567b599e2ef\"\n },\n {\n \"url\": \"plugins/cConf-1-4-8.js\",\n \"revision\": \"d7577d8f21716423852c343f027c4c27\"\n },\n {\n \"url\": \"connect/confluence/connectUtils-1-4-8.js\",\n \"revision\": \"8f6c85460791915b01d83cd0a793effb\"\n },\n {\n \"url\": \"connect/new_common/cac.js\",\n \"revision\": \"3d8c436c566db645fb1e6e6ba9f69bbc\"\n },\n {\n \"url\": \"connect/gdrive_common/gac.js\",\n \"revision\": \"38f1df3ecc4d78290493f47e62202138\"\n },\n {\n \"url\": \"connect/onedrive_common/ac.js\",\n \"revision\": \"887d3ac605a7bb297067537e7c1f5686\"\n },\n {\n \"url\": \"connect/confluence/viewer-init.js\",\n \"revision\": \"4a60c6c805cab7bc782f1e52f7818d9f\"\n },\n {\n \"url\": \"connect/confluence/viewer.js\",\n \"revision\": \"d025b0929817299fa154f273525aa0ec\"\n },\n {\n \"url\": \"connect/confluence/viewer-1-4-42.html\",\n \"revision\": \"c7b38b3af4eb7a58ab6dc4791216530e\"\n },\n {\n \"url\": \"connect/confluence/macroEditor-1-4-8.html\",\n \"revision\": \"8cd74a2fb60bf2e3e86026d66107cf11\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram-1-4-8.js\",\n \"revision\": \"8b670f4b6ccde55358851da705ae884f\"\n },\n {\n \"url\": \"connect/confluence/includeDiagram.html\",\n \"revision\": \"c03c89622d22227313645900af4e3c3d\"\n },\n {\n \"url\": \"connect/confluence/macro-editor.js\",\n \"revision\": \"e273a48b8e81faac4530bf1a68d75aa0\"\n },\n {\n \"url\": \"math/MathJax.js\",\n \"revision\": \"b2c103388b71bb3d11cbf9aa45fe9b68\"\n },\n {\n \"url\": \"math/config/TeX-MML-AM_SVG-full.js\",\n \"revision\": \"d5cb8ac04050983170ae4af145bc66ff\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/fontdata.js\",\n \"revision\": \"495e5a410955d1b6178870e605890ede\"\n },\n {\n \"url\": \"math/jax/element/mml/optable/BasicLatin.js\",\n \"revision\": \"cac9b2e71382e62270baa55fab07cc13\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Size2/Regular/Main.js\",\n \"revision\": \"e3e5e4d5924beed29f0844550b5c8f46\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/LetterlikeSymbols.js\",\n \"revision\": \"0767cbad7275b53da128e7e5e1109f7c\"\n },\n {\n \"url\": \"math/jax/output/SVG/fonts/TeX/Main/Regular/GreekAndCoptic.js\",\n \"revision\": \"346302a5c5ee00e01c302148c56dbfe3\"\n },\n {\n \"url\": \"resources/dia.txt\",\n \"revision\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_am.txt\",\n \"revision\": \"7b87288182abf40af0364ee000959b7b\"\n },\n {\n \"url\": \"resources/dia_ar.txt\",\n \"revision\": \"8cb02cb9d3740ac3306b963f060db29f\"\n },\n {\n \"url\": \"resources/dia_bg.txt\",\n \"revision\": \"c3fe70b41c1c99a3817f45a533f0d3d1\"\n },\n {\n \"url\": \"resources/dia_bn.txt\",\n \"revision\": \"50da78b0b7f2f65bdf25eabae73b3228\"\n },\n {\n \"url\": \"resources/dia_bs.txt\",\n \"revision\": \"568b22ef20ebfe162fce127fa9bcc6b5\"\n },\n {\n \"url\": \"resources/dia_ca.txt\",\n \"revision\": \"a4f3c89b030191d40999805696e6859b\"\n },\n {\n \"url\": \"resources/dia_cs.txt\",\n \"revision\": \"feebdfef9385384c37fbadd1a1a1b6c2\"\n },\n {\n \"url\": \"resources/dia_da.txt\",\n \"revision\": \"163d26afd66826247cf1553314ec70f5\"\n },\n {\n \"url\": \"resources/dia_de.txt\",\n \"revision\": \"9aa8d6e1d10659624519c88a7ad3e042\"\n },\n {\n \"url\": \"resources/dia_el.txt\",\n \"revision\": \"5289ac0ed78737231ca568be2c777d1a\"\n },\n {\n \"url\": \"resources/dia_eo.txt\",\n \"revision\": \"98e0cca265917fe115de548ca2c6d7a4\"\n },\n {\n \"url\": \"resources/dia_es.txt\",\n \"revision\": \"1a590b0b38299487e1267d440ba04350\"\n },\n {\n \"url\": \"resources/dia_et.txt\",\n \"revision\": \"bed7cfc8f949531f762ad86a225c15a2\"\n },\n {\n \"url\": \"resources/dia_eu.txt\",\n \"revision\": \"5186a4cce8e53bb454e4d539d1792b4d\"\n },\n {\n \"url\": \"resources/dia_fa.txt\",\n \"revision\": \"21e0279f46bcdd79063c06fcfc7b1120\"\n },\n {\n \"url\": \"resources/dia_fi.txt\",\n \"revision\": \"649cea556e9168919b0492f8565bac8b\"\n },\n {\n \"url\": \"resources/dia_fil.txt\",\n \"revision\": \"a717e0751e11dbb6502acfcc51c1a704\"\n },\n {\n \"url\": \"resources/dia_fr.txt\",\n \"revision\": \"4e6530553659158b0f55cc43ec46cc7e\"\n },\n {\n \"url\": \"resources/dia_gl.txt\",\n \"revision\": \"4fe5a563571d23001fb0dcd28dadcb32\"\n },\n {\n \"url\": \"resources/dia_gu.txt\",\n \"revision\": \"5eef301316f5945a700c13d1d96570ed\"\n },\n {\n \"url\": \"resources/dia_he.txt\",\n \"revision\": \"d13e2c3ec4f6f34948f874eda3d63a55\"\n },\n {\n \"url\": \"resources/dia_hi.txt\",\n \"revision\": \"65a2374e09cee44447e9462f3acb7f6a\"\n },\n {\n \"url\": \"resources/dia_hr.txt\",\n \"revision\": \"21626f14592c1b84ee28b058fcb74194\"\n },\n {\n \"url\": \"resources/dia_hu.txt\",\n \"revision\": \"1698e21cde2ed5f5b599429e5e68a8c4\"\n },\n {\n \"url\": \"resources/dia_id.txt\",\n \"revision\": \"a3af078b5bc5cd36df5368fb2604ed02\"\n },\n {\n \"url\": \"resources/dia_it.txt\",\n \"revision\": \"f3b29c577b79c37687f37c1b0748b9d1\"\n },\n {\n \"url\": \"resources/dia_ja.txt\",\n \"revision\": \"990f1ad82383245f1f9e37678a1c9bab\"\n },\n {\n \"url\": \"resources/dia_kn.txt\",\n \"revision\": \"836030c27dc0bb91a25ebcc722f2df41\"\n },\n {\n \"url\": \"resources/dia_ko.txt\",\n \"revision\": \"4a5032d2cad4be2a1815f7e29238664a\"\n },\n {\n \"url\": \"resources/dia_lt.txt\",\n \"revision\": \"d0a2bbb32c3d7d860c8c0385075407ee\"\n },\n {\n \"url\": \"resources/dia_lv.txt\",\n \"revision\": \"8cdfac8996f69486b99302eb0c01757a\"\n },\n {\n \"url\": \"resources/dia_ml.txt\",\n \"revision\": \"53f0f853779db48abc46023e507cb698\"\n },\n {\n \"url\": \"resources/dia_mr.txt\",\n \"revision\": \"4f3bffbf25b0d07a0946e77a288f40b9\"\n },\n {\n \"url\": \"resources/dia_ms.txt\",\n \"revision\": \"55d9c222689543ab6a091636d12dc92f\"\n },\n {\n \"url\": \"resources/dia_my.txt\",\n \"revision\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_nl.txt\",\n \"revision\": \"da45f841b898121c268b02e5cf0c0f5e\"\n },\n {\n \"url\": \"resources/dia_no.txt\",\n \"revision\": \"afa660c88bef1253c9827f857e3c2a99\"\n },\n {\n \"url\": \"resources/dia_pl.txt\",\n \"revision\": \"934cb78df740c1377b724cc68b28b436\"\n },\n {\n \"url\": \"resources/dia_pt-br.txt\",\n \"revision\": \"128c5640c8ea34d4e5296bbb2ef35db3\"\n },\n {\n \"url\": \"resources/dia_pt.txt\",\n \"revision\": \"1d30c678b01d010a0c8a5cf415fa68a0\"\n },\n {\n \"url\": \"resources/dia_ro.txt\",\n \"revision\": \"a90bf597059e90eff0d955d12058df23\"\n },\n {\n \"url\": \"resources/dia_ru.txt\",\n \"revision\": \"b225c1bd151294617e8d600181d9e44e\"\n },\n {\n \"url\": \"resources/dia_si.txt\",\n \"revision\": \"6ac22c2dd7bf24f2ce4db6ea5cd82470\"\n },\n {\n \"url\": \"resources/dia_sk.txt\",\n \"revision\": \"be785304786ae06fe6cdae4c029e5f28\"\n },\n {\n \"url\": \"resources/dia_sl.txt\",\n \"revision\": \"c3748f17f0775bdd539ed69a49acd1e1\"\n },\n {\n \"url\": \"resources/dia_sr.txt\",\n \"revision\": \"611506593ed67893a50c3a9000a12c79\"\n },\n {\n \"url\": \"resources/dia_sv.txt\",\n \"revision\": \"54157da886c9c17d4eb1fe9e3d195368\"\n },\n {\n \"url\": \"resources/dia_sw.txt\",\n \"revision\": \"0cd0148f07578cbac9dc4e2222277266\"\n },\n {\n \"url\": \"resources/dia_ta.txt\",\n \"revision\": \"79cb0ed533e753ae646f055fb75d25fc\"\n },\n {\n \"url\": \"resources/dia_te.txt\",\n \"revision\": \"305740ddcfe539071f9f65d844c13068\"\n },\n {\n \"url\": \"resources/dia_th.txt\",\n \"revision\": \"ffc4698dc2f34eb02bf02f3ac26c5c7e\"\n },\n {\n \"url\": \"resources/dia_tr.txt\",\n \"revision\": \"1092cea9e131780ae817c5c5915be3b6\"\n },\n {\n \"url\": \"resources/dia_uk.txt\",\n \"revision\": \"e1ab64d71b13935ef5ef05c09a8f95d9\"\n },\n {\n \"url\": \"resources/dia_vi.txt\",\n \"revision\": \"a9ead4c2e8460af1b127b7405dba35a3\"\n },\n {\n \"url\": \"resources/dia_zh-tw.txt\",\n \"revision\": \"28d610fd1f35a68bcc8a555fea09dc12\"\n },\n {\n \"url\": \"resources/dia_zh.txt\",\n \"revision\": \"f49748b5eb13dee86003c5f57aa628ff\"\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